Autor Tema: ayuda con tmr0 de 16f84  (Leído 1871 veces)

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

Desconectado paquin

  • PIC10
  • *
  • Mensajes: 5
ayuda con tmr0 de 16f84
« en: 28 de Mayo de 2007, 14:23:10 »
tengo el problema con el tmr0 que se desborda tan rapidamente que solo se ve un destello en el led, quiero que dos leds destellen, uno con el tmr0 y el otro con una rutina de tiempo
el progama es el siguiente.

org  h'00´
goto  inicio
retfie
org  'h04'
inicio
movlw  h'1f'
bsf  status,5
movwf  trisa
movlw  h'00'
movwf  trisb
bcf  status,5
star
bsf  portb,7    ;enciende led 1
bsf  status,5
bsf  option_reg,0
bsf  option_reg,1
bsf  option_reg,2
bcf  option_reg,3
bcf  option_reg,5
movlw  h'ff'
movwf  tmr0
latch
btfss  intcon,2
goto  latch
bcf  portb,7       ;apago led1
goto  led
time
movlw  h'ff'
movwf  contador
dec1 
movlw  h'ff'
movwf  contador1
dec
decfsz  contador1
goto  dec
decfsz  contador
goto  dec1
return
led
bsf  portb,0
call  time
bcf  portb,0
call  time
goto  star
end





Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: ayuda con tmr0 de 16f84
« Respuesta #1 en: 28 de Mayo de 2007, 16:51:02 »
Hola amigo:
No dices nada de la frecuencia del cristal que estas utilizando. De pendiendo de esa frecuencia así será el tiempo que se dispare la interrupcion del TMR0.
Segun la configuracion del registro option que has puesto has configurado un divisor de 1:256 por lo que la cuenta al ser Fosc/4 el tiempo total de desborrde de la interrupcion será:
T=4 x Tosc x Valor de TMR0 x Rango del divisor
si tmr0=0  y el cristal es de 4MHz entonces:
T:4x0,25x256x256=65milisegundos.

Con lo que la interupcion se te está disparando cada 25milisegundos. Vamos que casi le veras siempre encendic

Fermin
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: ayuda con tmr0 de 16f84
« Respuesta #2 en: 28 de Mayo de 2007, 17:03:29 »
Hay un pequeño error, al hablar de interrupcion quise decir rebose del TMR0.
2º error si el resultado de la formula da 65,025ms evidentemente  no pueden ser 25 :D :D

Lapsus despues de estar un tiempo sin poder entrar en el foro :mrgreen: :mrgreen:
Fermin
Todos los días se aprende algo nuevo.