Autor Tema: Ayuda para configurar TMR0 como contador Pic16F84  (Leído 4162 veces)

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

Desconectado elopoveg

  • PIC10
  • *
  • Mensajes: 2
Ayuda para configurar TMR0 como contador Pic16F84
« en: 14 de Septiembre de 2010, 23:13:10 »
Hola a todos! es mi primer mensaje en este foro y de antemano les agradezco su ayuda!
Soy nuevo en el mundo de los pics, intento realizar un contador de rmp, se que el tema se ha tratado mucho en el foro y he leido bastantes mensajes sobre esto antes de iniciar el tema, he leido en otros mensajes el procedimiento básico para este proyecto, quiero es contar los pulsos con TMR0, usar una rutina de retardo, hacer algunas cuentas y asi obtener el valor de rpm y mostrar por 4 displays 7 segmentos, hasta aqui todo bien, he ido armando el programa poco a poco, pero tengo problemas para que ande, las rutinas de multiplicar los registros, convertir a BCD, mostrar por los displays, etc, andan muy bien, lo he simulado en MPLAB y PROTEUS y funcionan, pero para trabajar con el TMR0 tengo dificultades, les muestro lo que he hecho hasta ahora, configuro en modo contador, preescaler al Watchdog, contador por flanco ascendente, pero cuando lo simulo me muestra 0000 en los displays! no se exactamente donde está el error en este caso, agradezco su ayuda, les muestro el código donde intento configurar el TMR0.

main
   bsf STATUS,RP0
   clrf TRISB
   movlw b'11110000'
   movwf TRISA
   movlw b'00101000'
   movwf OPTION_REG
   bcf STATUS,RP0
inicio
   clrf TMR0
   call Retardo_50ms
   movf TMR0,0
   movwf mulplr
   movlw .100
   movwf mulcnd
                
configuro el puerto B como salida para enviar el valor a los displays, utilizo los 4 bits menos significativos del puerto A para seleccionar el display cuando hago la multiplexación, y RA4 como entrada para contar los pulsos! no se si sea correcto de este modo pero he intentado otra configuración y el error persiste, mmulplr y mulcnd son los registros donde almaceno los valores a multiplicar, por ejemplo si midiese los pulsos durante un segundo, enviaria el valor del TMR0 a mulplr y 60 a mulcnd, el retardo de 50ms es referencial por asi decirlo, tampoco se en realidad durante cuanto tiempo deberia medir los pulsos, tengo pensado que sea un contador de rpm para automovil! he probado con diferentes retardos pero al simularlo me sigue apareciendo 0000, creo que mi problema es la configuración del TMR0! agradezco su ayuda!
  

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Ayuda para configurar TMR0 como contador Pic16F84
« Respuesta #1 en: 22 de Septiembre de 2010, 14:30:30 »
Si le asignas el preescaler al WDT debes deshabilitarlo en la configuracion, supongo que lo habras hecho, pero por si acaso...

WDT_OFF

Si quieres poner el programa y que le echemos un ojo tambien es una opcion.

Saludos

Desconectado elopoveg

  • PIC10
  • *
  • Mensajes: 2
Re: Ayuda para configurar TMR0 como contador Pic16F84
« Respuesta #2 en: 03 de Octubre de 2010, 14:06:37 »
hola tapi8! muchas gracias por tu respuesta, me puse a analizar paso a paso en MPLAB y la verdad no tenía errores, el problema era la simulación en Proteus que no estaba realizando bien, ya está funcionando como debe  :mrgreen: