Autor Tema: duda sobre TIMER 0 en PIC16f876 y ensamblador  (Leído 2143 veces)

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

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
duda sobre TIMER 0 en PIC16f876 y ensamblador
« en: 12 de Febrero de 2005, 10:25:00 »
Que tal, a ver si me pueden sacar del lio en el que estoy.

Quiero hacer una temporizacion en lenguaje ensamblador y utilizo el timer 0, la cuestion es ¿este temporizador se puede parar como el timer 1, o una vez arrancado ya no para?

Lo que quiero hacer es que mientras se estén produciendo unas entradas  el temporizador vuelva a empezar,recargo el registro TMR0 con valor 0, pero si se termina el tiempo y no se ha producido ninguna entrada quiero dejar de temporizar y hacer otra cosas.

En la interrupcion del timer 0 lo que hago es borrar el flag y deshabilitar el temporizador, pero o lo estoy haciendo mal o esto sigue temporizando aunque parece que si que deshabilita la interrupcion por temporizador 0.

Bueno, agradezco cualquier comentario sobre el timer 0

Gracias por buestro tiempo
 

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: duda sobre TIMER 0 en PIC16f876 y ensamblador
« Respuesta #1 en: 13 de Febrero de 2005, 00:20:00 »
Ok mira el timer 0 es un temporizador siempre encendido, la unica diferencia es que puedes seleccionar la señal de reloj y el flanco del mismo, ahora, hablas de temporizar, el timer 0 funciona de forma "independiente" del micro, en el sentido de que el no interfiere con tu programa, a menos q uses interrupciones, ahora lo q t recomiendo es q para temporizar las uses, primero busca colocar el valor en 0, y si despues de pasado el tiempo no sucedio el evento que esperabas simplemente desactiva la interrupcion, asi no tndras problemas con tu programa. Para usar las interrupciones deberas usar el bit GIE y el TOIE, para consultar el estado de activacion/desactivacion de la interrupcion usa TOIF (todos ubicados en el registro INTCON). La fuente de reloj q uses depende de tus necesidades (y del tiempo q pretendas controlar con el TMR0).

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
RE: duda sobre TIMER 0 en PIC16f876 y ensamblador
« Respuesta #2 en: 13 de Febrero de 2005, 10:21:00 »
¡Gracias por contestar!,una cosa mas ¿Hay alguna incompatibilidad entre el timer 0
y el timer 1?,¿ pueden estar los dos funcionando sin problemas aunque no tenga habilitada la interrupcion del timer 0?

Gracias por vuestro tiempo

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: duda sobre TIMER 0 en PIC16f876 y ensamblador
« Respuesta #3 en: 13 de Febrero de 2005, 20:14:00 »
Bueno, como t dije los Timers son independientes, sin embargo esta independencia es favorable y desfavorable al mismo tiempo... por ejemplo, supon q activas ambas interrupciones de los dos timers, y se dispara una de ellas, entonces vas y ejecutas tu rutina de interrupcion, el problema esta en que si se dispara la segunda interrupcion mientras atiendes la primera no tendras forma de saber q la segunda efectivamente se disparo, a menos q coloques en algun sitio del programa para ver si efectivamente se disparo la segunda, claro q si las rutinas de interrupcion son largas tendras un problema significativo con las ints... en fin, no deberian tener problemas entre si, si diseñas bien tu programa para soportar ambos timers sin problemas.

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
RE: duda sobre TIMER 0 en PIC16f876 y ensamblador
« Respuesta #4 en: 14 de Febrero de 2005, 13:45:00 »
Muchas gracias por tu ayuda fenix_in, efectivamente el problema lo tenía en las interrupciones, no en el funcionamiento de los temporizadores.

El problema estaba en la identificacion de las interrupciones, y siempre entraba en la del timer 0 cuando no debía, ahora creo que ya está solucionado.

Gracias por tu tiempo fenix_in.
Un saludo!


 

anything