TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: sgb004 en 31 de Octubre de 2010, 01:29:24
-
Hola, que tal?
¿Alguna idea de como obtener el valor del timer0 mientras este esta contando?, según se este va de 0 a 255 cuando es de 8 bits, cuando es de 16 va de 0 a 65535, y que se desborda al llegar al valor máximo, que para configurar el timer restas el tiempo que quieres menos el máximo de bits esto de acuerdo con el prescaler, entonces el timer no inicia de 0 sino de un valor ya establecido en la configuración. Es posible saber cuando este desborda o llega a su valor máximo ya sea de 8 o 16, pero ¿acaso es posible saber cuanto va desde que lo activaste?, es decir tu tienes un tiempo X y la configuración del timer0 te dice que tienes que iniciar desde 167 (suponiendo que es de 8 bits), ¿como obtienes la cantidad actual desde que inicio el timer hasta que desborda?
ya intente con:
movlw TMR0
movwf PTMR0
pero dice que TMR0 no existe
con:
movlw TMRH
movwf PTMR0
y
movlw TMRL
movwf PTMR0
pero me dan valores estáticos, tendrán más información sobre el tmr0 o ¿como puedo guardar el valor actual del timer0 para el PIC18F4550?
bueno, muchas gracias.
-
Hola.
Estás usando incorrectamente las instrucciones involucradas...
Movlw siempre carga un valor estático, por lo que no estás moviendo al acumulador(W) el valor del TMR0, sino que su direccion de memoria.
Hacé:
movf TMR0,W
movwf PTMRO
o bien, posiblemente también sirva:
movff TMR0,PTMR0
en un 18F
Saludos.
-
Excelente
Gracias BrunoF.
-
Puedes revisar el siguiente hilo para entender como funciona cada instrucción de assembler:
http://www.todopic.com.ar/foros/index.php?topic=23623.0
Saludos!