Autor Tema: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?  (Leído 5517 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
He estado tratando de controlar el las interrupciones por Timer1 con un cristal de reloj (32khz)  . Todavia no me preocupa mucho el tiempo exacto . Segun a mi entender de la hoja de datos esta configuracion deberia desbordarse cada 2 seg.
Todo marcha bien excepto que a la hora de programarlo,  resulta que si pasan 2 seg aprox , se genera  la primera interrupcion que enciende el led y despues se queda encendido en lugar de ciclar el encendido y apagado.
 
Tengo mi programa dividido en varios archivos .inc  y un asm que  es el principal. Creo yo que es la mejor forma de programar por que segun entiendo asi uno puede ir generando sus propia libreria de programas para el futuro. y tambien me ayuda a darle mucho orden al programa. Me gustaria que tambien me dieran su opinion sobre si esto es una buena practica o no.

Este es el archivo principal "p1.asm":

Código: [Seleccionar]
#INCLUDE<P16F88.INC>
LIST P = 16F88
ERRORLEVEL - 302
ERRORLEVEL - 305

ORG 0X00
GOTO INICIO
ORG 0X04
GOTO INTERRUPCION

W_TEMP EQU 0X70
STATUS_TEMP EQU 0X71
PCLATH_TEMP EQU 0X72

INCLUDE<PRUEBAS.INC>
INCLUDE<CONFIGURACION.INC>
INCLUDE<INTERRUPCION.INC>

INICIO
;{;
CALL CONFIGURA_IO             ;CONFIGURA ENTRADAS Y SALIDAS
CALL CONFIGURA_TIMER_1             ;CONFIGURA INTERRUPCIONES POR TIMER1
SLEEP             ;A DORMIR
NOP             ;NADA
NOP ;NADA
GOTO $-3
;}
END

Esta es la configuracion :

Código: [Seleccionar]
;CONFIGURACION.INC
CONFIGURA_IO
;{;
;BANCO 1
BSF STATUS,RP0
CLRF ANSEL ;MODO DIGITAL
MOVLW B'11111111' ;LITERAL A W
MOVWF TRISA ;CONFIGURA PUERTO A
MOVLW B'01000101' ;LITERAL A W
MOVWF TRISB ;CONFIGURA PUERTO B
;BANCO 0
BCF STATUS,RP0
CLRF PORTA ;LIMPIA PUERTO A
CLRF PORTB ;LIMPIA PUERTO B
;};
RETURN
CONFIGURA_TIMER_1
;{;
;BANCO 1
BSF STATUS,RP0
BSF INTCON,GIE ;HABILITA INTERRUPCIONES GLOBALES
BSF INTCON,PEIE ;HABILITA INTERRUPCIONES POR PERIFERICOS
BSF PIE1,TMR1IE  ;HABILITA INTERRUPCIONES POR TIMER 1
;BANCO 0
BCF   STATUS,RP0
BCF PIR1,TMR1IF ;LIMPIA LA BANDERA DE TIMER 1
CLRF TMR1L ;LIMPIA EL REGISTRO  L DE TIMER 1
CLRF TMR1H ;LIMPIA EL REGISTRO H DE TIMER 1
MOVLW B'00001111' ;MUEVE LITERAL A W
MOVWF T1CON ;CONFIGURA EL TIMER 1
;};
RETURN

Y por ultimo aqui esta la interrupcion :
Código: [Seleccionar]
;INTERRUPCION.INC
INTERRUPCION
;{;
CALL SALVAR_ENTORNO
GOTO INTERRUPCION_T1
;};

SALVAR_ENTORNO
;{;
MOVWF    W_TEMP           ;Copy W to TEMP register
SWAPF     STATUS, W       ;Swap status to be saved into W
CLRF        STATUS            ;bank 0, regardless of current bank, Clears IRP,RP1,RP0
MOVWF    STATUS_TEMP   ;Save status to bank zero STATUS_TEMP register
MOVF       PCLATH, W        ;Only required if using page 1
MOVWF    PCLATH_TEMP    ;Save PCLATH into W
CLRF     PCLATH                ;Page zero, regardless of current page
;};
RETURN

INTERRUPCION_T1
;{;
;BANCO_0
BCF STATUS,RP0
BTFSC PORTB,3
GOTO APAGAR_LED
PRENDER_LED
BSF PORTB,3 ;PRENDE EL LED EN RB3
CALL CONFIGURA_TIMER_1 ;CONFIGURA EL TIMER 1
GOTO RESTAURAR_ENTORNO ;VE A RESTAURAR EL ENTORNO
APAGAR_LED
BCF PORTB,3 ;APAGA EL LED EN RB3
CALL CONFIGURA_TIMER_1 ;CONFIGURA EL TIMER 1
GOTO RESTAURAR_ENTORNO ;VE A RESTAURAR EL ENTORNO

;};

RESTAURAR_ENTORNO
;{;
MOVF       PCLATH_TEMP, W    ;Restore PCLATH
MOVWF    PCLATH                  ;Move W into PCLATH
SWAPF    STATUS_TEMP, W     ;Swap STATUS_TEMP register into W
                                                            ;(sets bank to original state)
MOVWF    STATUS                  ;Move W into STATUS register
SWAPF    W_TEMP, F               ;Swap W_TEMP
SWAPF    W_TEMP, W             ;Swap W_TEMP into W
;};
RETFIE


Esta tecnica me ha ayudado mucho a organizarme , pero creo que no ayuda mucho a la hora de pedir ayuda en los foros, asi que tambien adjuntare los archivos por si esto facilita las cosas para ustedes.

Bueno de antemano muchas gracias  por cualquier comentario.



Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #1 en: 06 de Junio de 2008, 12:25:02 »
Saludos pakuak! Me parece excelente tu práctica, por las ventajas que tú mismo has descrito:

Tengo mi programa dividido en varios archivos .inc  y un asm que  es el principal. Creo yo que es la mejor forma de programar por que segun entiendo asi uno puede ir generando sus propia libreria de programas para el futuro. y tambien me ayuda a darle mucho orden al programa.

En cuanto a esto lo que mencionas de que esta forma no te es muy útil para pedir ayuda en los foros... lamento decirte que estás equivocado.
No hay problema con eso. Siempre y cuando coloques los diferentes archivos, tal cómo tú lo has hecho... que no creo sea tan difícil o sí?

Con relación a tu programa, le eché un ojazo y no le ví nada indecente  :D, está bastante ordenado.
Estás programando con el mplab? Cómo tienes los fuses? Estás desactivando el WDT?

Prueba con eso a ver...
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #2 en: 06 de Junio de 2008, 13:42:49 »
Gracias firepic . Aqui estan  los bits de  configuracion (Creo que tu los llamas fuses pero no estoy muy seguro): 

Oscillator                                       XT
Watchdog Timer                             Off
Power Up Timmer                           Off
RA5/MCLR Pin Function Select          MCLR
Brown Out Detect                            Off
Low Voltage Program                       Disabled
Data EE Read Protect                      Off
CCP1 Mux                                      RB3
Code Protect                                  Off
Fail- Safe Clock Monitor Enable        Dissabled
Internal External Switch Over Mode  Dissabled


Estoy usando Mplab 8.10  , con un programador PICSTART Plus.
« Última modificación: 06 de Junio de 2008, 16:07:06 por pakuak »

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #3 en: 09 de Junio de 2008, 21:45:21 »
Despues de rehacer completamente mi programa,el problema se ha ido y ahora ya tengo el timer 1 corriendo perfectamente. Pero me ha surgido un nuevo problema y es que hay veces que enciendo el circuito y se queda con los leds prendidos  y la mayor parte del tiempo funciona bien.  ¿Que cren que sea eso?

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #4 en: 09 de Junio de 2008, 21:49:40 »
cuando comiences inicio deberias poner algo asi: CLRF   PORTB  para indicarle que al pic que el valor del portb antes que nada va a estar a Cero. prueba eso y dinos que sucede :D.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #5 en: 09 de Junio de 2008, 22:03:04 »
Eso que dice poseidon debe ser la solución. Técnicamente se llama "inicializar los puertos"... si lees la datasheet verás que hasta te dicen el código para hacerlo correctamente.
Saludos, nos leemos!  :mrgreen:

P.D.:
Aqui estan  los bits de  configuracion (Creo que tu los llamas fuses pero no estoy muy seguro): 
Exactamente, esos son los fuses.
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #6 en: 09 de Junio de 2008, 22:07:57 »
asi es amigo firepic(pudeo llamarlo amigo?  :shock:), como bien dices, en el datasheet indican como inicializar los puertos, nada como una lectura al buen datasheet :D.

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #7 en: 09 de Junio de 2008, 22:14:59 »
Gracias por su rapda respuesta , lo intentare.  Solo que me ha surgido otra duda  y es que.  

¿Que quiere decir el datasheet con que hay que dar un tiempo para que se inicialize el oscilador del  timer 1?

Denuevo muchas gracias :o

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #8 en: 09 de Junio de 2008, 22:29:43 »
asi es amigo firepic(pudeo llamarlo amigo?  :shock:
Claro poseidon, aquí todos estamos en confianza  :lol:

¿Que quiere decir el datasheet con que hay que dar un tiempo para que se inicialize el oscilador del  timer 1?

Pakuak, de dónde has leído eso? Podrías colocar la imagen de la página?
O sino dime la página... supongo que es la datasheet del 16F88 verdad? A ver si puedo entender tu pregunta.
Ok saludos, nos leemos!  :mrgreen:

"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #9 en: 09 de Junio de 2008, 22:44:40 »
He inicializado los puertos a y b con el siguiente codigo

Código: [Seleccionar]
INICIALIZAR
;{;

BANKSEL PORTA                 ; select bank of PORTA
CLRF PORTA                       ; Initialize PORTA by
                                        ; clearing output
                                        ; data latches
CLRF PORTB                   ; inicializar puerto b
BANKSEL ANSEL                 ; Select Bank of ANSEL
MOVLW 0x00                      ; Configure all pins
MOVWF ANSEL                    ; as digital inputs
MOVLW 0xFF                      ; Value used to
                                       ; initialize data
                                                    ; direction
MOVWF TRISA                   ; Set RA<7:0> as inputs
MOVWF TRISB    ; todo el puerto b como entrada
;};
      RETURN

El problema no ha desaparecido. Generalmente es la primer vez que enciendo el pic se queda estatico en con el led encendido. Si apago y vuelvo a encender el pic el problema se arregla y si lo vuelvo a hacer mas veces el problema ya no se presenta.


Todavia no se muy bien como subir imagenes pero el texto es el siguiente :

Citar
7.6 Timer1 Oscillator
A crystal oscillator circuit is built between pins T1OSI
(input) and T1OSO (amplifier output). It is enabled by
setting control bit T1OSCEN (T1CON<3>). The oscilla-
tor is a low-power oscillator, rated up to 32.768 kHz. It
will continue to run during all power-managed modes.
It is primarily intended for a 32 kHz crystal. The circuit
for a typical LP oscillator is shown in Figure 7-3.
Table 7-1 shows the capacitor selection for the Timer1
oscillator.
The user must provide a software time delay to ensure
proper oscillator start-up.


Esta en la pagina 75 de la hoja de datos

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #10 en: 09 de Junio de 2008, 23:01:06 »
En cuanto a esto:
He inicializado los puertos a y b con el siguiente codigo
Código: [Seleccionar]
INICIALIZAR
;{;

BANKSEL PORTA                 ; select bank of PORTA
CLRF PORTA                       ; Initialize PORTA by
                                        ; clearing output
                                        ; data latches
CLRF PORTB                   ; inicializar puerto b
BANKSEL ANSEL                 ; Select Bank of ANSEL
MOVLW 0x00                      ; Configure all pins
MOVWF ANSEL                    ; as digital inputs
MOVLW 0xFF                      ; Value used to
                                       ; initialize data
                                                    ; direction
MOVWF TRISA                   ; Set RA<7:0> as inputs
MOVWF TRISB    ; todo el puerto b como entrada
;};
      RETURN

El problema no ha desaparecido. Generalmente es la primer vez que enciendo el pic se queda estatico en con el led encendido. Si apago y vuelvo a encender el pic el problema se arregla y si lo vuelvo a hacer mas veces el problema ya no se presenta.

Qué tal si pruebas encendiendo el Power Up Timer? Es uno de los fuses... tú lo tienes en off... colócalo en On...
Otra cosa, según ese código de inicialización, estás colocando todo el porta y el portb como entrada... no necesitas aunque sea un pin de salida para el led?  :shock:

En cuanto a lo que mencionas del retardo para la inicialización del cristal de oscilación del timer1, es totalmente correcto. La datasheet así lo especifica. Es un tiempo prudencial que permite la estabilización de la oscilación. Según dice allí, depende de la capacitancia de los condensadores que conectes. Sin embargo, ahora yo también tengo una duda... cuál será el tiempo más adecuado para ese delay?  :?
Como buen ignorante que soy no lo sé  :D
Ojalá algún experto del foro pueda responder a esta interrogante.
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #11 en: 09 de Junio de 2008, 23:20:57 »
Gracias firepic derecho si sabia lo de tener todo como entrada. Esta parte del codigo solo es para inicializar el pic , despues de eso viene la configuracion de las entradas y salidas. En un momento mas subire todo el programa como lo tengo en este momento.  :D

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #12 en: 09 de Junio de 2008, 23:36:16 »
Pero pakuak, para qué duplicar código?
En esa parte que "inicializas" los puertos, de una vez con el valor correcto en trisa y trisb puedes configurar las entradas y salidas y listo!  :P
Y no olvides lo de habilitar el Power Up Timer.
Ok saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado pakuak

  • PIC10
  • *
  • Mensajes: 31
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #13 en: 10 de Junio de 2008, 00:22:06 »
Ok . Este es el programa como lo tengo ahora (Ya tiene Power Up Timer) pero sigue igual.

Este es el programa principal :


Código: [Seleccionar]
title "P1.ASM - PRUEBA INICIAL TESIS"
LIST P = 16F88
ERRORLEVEL -302
ERRORLEVEL -305
#INCLUDE<P16F88.INC>


ORG 0X00
GOTO INICIO
ORG 0X04
GOTO INTERRUPCION

CBLOCK 0X20     
  T0A , T0B ,T0C
ENDC


INCLUDE<PRUEBAS.INC>
INCLUDE<CONFIGURACION.INC>
INCLUDE<INTERRUPCION.INC>

INICIO
;{;

CALL INICIALIZAR ;INICIALIZA LOS PUERTOS
CALL CONF_IO ;CONFIGURA ENTRADAS Y SALIDAS
;CALL CONF_T0 ;LLAMA A LA CONFIGURACION DE TIMER 0 (ACTUALMENTE NO LO USO)
CALL CONF_T1 ;LLAMA A CONFIGURACION DE TIMER 1
;};
GOTO $;
END


ESTA ES LA CONFIGURACION

Código: [Seleccionar]
;CONFIGURACION.INC
INICIALIZAR
;{;

BANKSEL PORTA ; select bank of PORTA
CLRF PORTA ; Initialize PORTA by
; clearing output
; data latches
CLRF PORTB ; LIMPIA PUERTO B
BANKSEL ANSEL ; Select Bank of ANSEL
MOVLW 0x00 ; Configure all pins
MOVWF ANSEL ; as digital inputs
MOVLW 0xFF ; Value used to
; initialize data
; direction
MOVWF TRISA  ; Set RA<7:0> as inputs
MOVWF TRISB ; TODO EL PUERTO B COMO ENTRADA
;};
RETURN
CONF_IO
;{;
BSF STATUS,RP0 ;BANCO 1
CLRF ANSEL ;TODAS LAS IO MODO DIGITAL
CLRF TRISA ;PUERTO A COMO SALIDAS
CLRF TRISB ;PUERTO B COMO SALIDAS
BCF STATUS,RP0 ;BANCO O
CLRF PORTA ;LIMPIA PUERTO B
CLRF PORTB ;LIMPIA PUERTO A
;};
RETURN

CONF_T0
;{;
;BANCO 0
BCF STATUS,RP0
CLRF TMR0 ;LIMPIA LA CUENTA DE TIMER 0
;BANCO 1
BSF STATUS,RP0
BCF INTCON,TMR0IF ;LIMPIA BANDERA DE INTERRUPCION T0
BSF INTCON,GIE ;HABILITA INTERRUPCIONES GLOBALES
BSF INTCON,TMR0IE ;HABILITA INTERRUPCIONES POR T0

BCF OPTION_REG,T0CS ;T0 CLOCK_SOURCE 0 = RELOJ INTERNO 1
BCF OPTION_REG,T0SE ;T0 SOURCE_EDGE 0 = TRANCICION DE SUBIDA EN PIN 2
BSF OPTION_REG,PSA ;T0 PRESCALER_ASAIGMENT 0 = WDT 3

;}; ;ACTUALMENTE NO USO TIMER 0
RETURN

CONF_T1
;{;
BSF STATUS,RP0
BSF PIE1,TMR1IE ;HABILITA INTERRUPCIONES POR TIMER1

BCF STATUS,RP0 ;BANCO 0
MOVLW B'11011000' ;LITERAL A W
MOVWF TMR1H ;LITERAL A TIMER1 H (TODAVIA NO LA HE CALCULADO BIEN PARA EL CRISTAL QUE TENGO)
MOVLW B'11110000' ;LITERAL A W
MOVWF TMR1L ;;LITERAL A TIMER1 H (TODAVIA NO LA HE CALCULADO BIEN PARA EL CRISTAL QUE TENGO)
;CLRF TMR1L
;CLRF TMR1H
BCF PIR1,TMR1IF
BSF INTCON,GIE ;HABILITA INTERRUPCIONES GLOBALES
BSF INTCON,PEIE ;HABILITA INTERRUPCIONES POR PERIFERICOS
BSF INTCON,TMR0IE ;HABILITA INTERRUPCIONES POR T0

BCF T1CON,T1RUN            ;EL RELOJ DEL SISTEMA ES DE OTRA FUENTE      
BCF T1CON,T1CKPS1           ;PRESCALER 1:1         
BCF T1CON,T1CKPS0           ;PRESCALER 1:1           
BSF T1CON,T1OSCEN           ;TIMER1 OSCILLATOR ENCENDIDO       
BSF T1CON,NOT_T1SYNC        ;NO SINCRONIZES EL RELOJ EXTERNO (IGNORADO CON RELOJ INTERNO)       

BSF T1CON,TMR1CS          ;RELOJ EXTERNO
;BCF T1CON,TMR1CS        ;RELOJ INTERNO  (FOSC/4)             

BSF T1CON,TMR1ON    ;ENCIENDE TIMER1
;};
RETFIE

ESTA ES LA INTERRUPCION

Código: [Seleccionar]
;INTERRUPCION.INC
INTERRUPCION
;{;
;GOTO INT_T0 ;(ACTUALMENTE NO USO TIMER 0)
GOTO INT_T1 ;VE A LA INTERRUPCION POR TIMER1
;};

INT_T0
;{;
;BANCO 0
BCF STATUS,RP0
INCF T0B
BTFSS STATUS,Z ;PRUEBA SI T0B SE DESBORDA
GOTO RECONFIGURA_T0 ;SI NO SE DESBORDA
INCF T0A ;SI SE DESBORDA INCREMENTA T0A
BTFSS STATUS,Z ;PRUEBA SI T0A SE DESBORDA
GOTO RECONFIGURA_T0 ;SI NO SE DESBORDA
SEGUNDO
COMF PORTA,1 ;TOGGLE PUERTO A
COMF PORTB,1 ;TOGGLE PUERTO B
CLRF T0A ;LIMPIA T0A
CLRF T0B ;LIMPIA T0B
CLRF T0C ;LIMPIA T0C
RECONFIGURA_T0
CALL CONF_T0 ;RECONFIGURA EL TIMER
;}; ;(ACTUALMENTE NO USO TIMER 0)
RETFIE

INT_T1;
;{;
CALL PRUEBA_2 ;LLAMA A LA PRUEBA 2 (TOGGLE)
CALL CONF_T1 ;RECONFIGURA EL TIMER 1
;};
RETFIE

ESTAS SON LAS PRUEBAS

Código: [Seleccionar]
;PRUEBAS.INC
PRUEBA_1 ;
;{
BCF STATUS,RP0 ; EN ESTE MOMENTO NO USO LA PRUEBA_1
MOVLW B'11111111' ;
MOVWF PORTA ;
MOVWF PORTB ;
;};
RETURN ;(EN ESTE MOMENTO NO USO LA PRUEBA 1)
PRUEBA_2
;{;
COMF PORTA,1 ;TOGGLE PUERTO A
COMF PORTB,1 ;TOGGLE PUERTO B
;};
RETURN

Y ESTOS SON LOS FUSES DE CONFIGURACION :


En un momento mas mdificare el codigo para no repetir la inicializacion y la configuracion como lo recomiendas. Muchas gracias


Por si les ayuda decidi publicar un video para que puedan ver al circuito en accion. Y tambien por que sigo explorando todas las cosas que se puede hacer en este foro.


Bueno muchas gracias a todos  luego nos seguimos leyendo :)
« Última modificación: 10 de Junio de 2008, 02:55:12 por pakuak »

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ¿Alguien podria ayudarme a corregir mi interrupcion con el timer1 porfavor?
« Respuesta #14 en: 10 de Junio de 2008, 11:59:15 »
Muy bueno el videito eh!  :P
Qué te parece si, como prueba no más, intentas lo siguiente:
Haces todo tu inicialización del pic (configuración de opciones del micro, inicialización de puertos, etc) y luego le haces un pequeño delay (antes de ir al programa principal)... qué dices?
Por cierto, te diré que a mí me pasaba igual cuando trabajaba con asm... al prenderlo no arrancaba bien, luego le daba reset y funcionaba perfecto.
O alguien podría dar una opinión más técnica y experta?
A ver... nocturno, gonzalo, redpic, pocher, migsantiago, norberto, y demás... están por ahí? Esos son los genios!  8)
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web