Autor Tema: No funciona el timer0  (Leído 1643 veces)

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

Desconectado nsblenin

  • PIC10
  • *
  • Mensajes: 2
No funciona el timer0
« en: 12 de Julio de 2010, 06:07:21 »
Bueno aver si alguien me puede ayudar que no veo donde está el error. Quiero que cada cierto tiempo el tmr0 interrumpa i me incremente LATD. Sin embargo el puerto D siempre esta a 0x01.

   LIST P=18F4321, F=INHX32
    #include <P18F4321.INC>

   CONFIG  OSC = INTIO2
   CONFIG MCLRE = OFF
;variables i constants


   ORG 0x000000
    goto MAIN
   ORG 0x000008
   goto HI
HI
   bcf INTCON, TMR0IF; netejem el flag de timer 0
   INCF LATD
   RETFIE FAST
MAIN
   call INITOSC
   BCF RCON, IPEN; desactivem prioritats d'interrupcio
   call INITTIMER0
   CLRF TRISD
   MOVLW 0X01
   MOVWF LATD
   
BUCLE
   NOP
   NOP
   NOP
   NOP
   BRA BUCLE

INITOSC
   MOVLW 0XEC;1110 1100
   movwf OSCCON
   RETURN

INITTIMER0
   bcf RCON, IPEN
   MOVLW 0XA0;1010 0000
   MOVWF INTCON
   movlw 84h; 1000 0100;
   movwf T0CON
   movlw 12h
   movwf TMR0L
   movlw 7Ah
   movwf TMR0H
   return

   

END

Desconectado Ata

  • PIC10
  • *
  • Mensajes: 11
Re: No funciona el timer0
« Respuesta #1 en: 12 de Julio de 2010, 16:55:04 »
Estimado NSBLENIN

Por casualidad tengo una tarjeta con 8 leds conectados al puerto D en un 18F4620 (igual al tuyo en lo que respecta a los puertos) y le grabe tu codigo tal cual lo pusistes sin cambiarle nada en absoluto.... Y me funciona correctamente... de hecho la cuenta en el puerto incrementa aprox cada segundo...

De repente algo mal seteado en tu MPASM o en tu grabador de pic??? Pero en tu codigo definitivamente no hay error.