Autor Tema: deshabilitacion del timer0 cuando esta por desbordarse  (Leído 1570 veces)

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

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
deshabilitacion del timer0 cuando esta por desbordarse
« en: 14 de Septiembre de 2009, 14:57:42 »
hola amigos, he tratado de encontrar una respuesta a , que sucede cuando deshalitas el timero0 cuando esta cerca de desbordarse.

por ejemplo, el timer0 se desborda cada 10ms, pero ocurre que en el programa, a veces se deshabilita por ejemplo cuando el timer0 esta a 2ms de desbordarse, esto por motivos de transmision de datos.
o sea se deshabilita para poder transmitir datos, cosa que con el modulo usart creo que no hay problema, pero con un puerto serie por software si causa problemas.

una ves finalizado la transferencia de datos, se vuelve a habilitar el timer0, en este caso el timer0 sigue tal como estaba cuando se deshabilito o empieza de nuevo el conteo?


Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
Re: deshabilitacion del timer0 cuando esta por desbordarse
« Respuesta #1 en: 14 de Septiembre de 2009, 15:05:22 »
he encontrado una caracteristica interesante del timer1
Citar
A diferencia del Timer 0, el Timer 1 tiene la posibilidad de activar o detener la cuenta mediante el bit TMR1ON del registro T1CON.

eso tal ves pueda ayudar, seguire buscando una solucion

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: deshabilitacion del timer0 cuando esta por desbordarse
« Respuesta #2 en: 14 de Septiembre de 2009, 15:36:52 »
puedes desabilitarlo con disable_interrupts(int_rtcc) y con Valor=get_rtcc; puedes almacenar el valor que en el momento de desabilitarse tenia el timer0.
Despues solo te queda habilitar te nuevo el contador con enable_interrupts(int_rtcc); y volverle a asignar el valor que tenia antes de deshabilitarlo...
Puedes hacerlo con set_rtcc(valor);
« Última modificación: 14 de Septiembre de 2009, 15:41:01 por ppyote »
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: deshabilitacion del timer0 cuando esta por desbordarse
« Respuesta #3 en: 14 de Septiembre de 2009, 18:19:14 »
Vas a deshabiltar la interrupción, solamente eso, el timer seguirá contando y si tu rutina demora mas de 2ms (Según el ejemplo que expusiste) se perderá esa interrupción y detectarás la próxima.
No contesto mensajes privados, las consultas en el foro

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
Re: deshabilitacion del timer0 cuando esta por desbordarse
« Respuesta #4 en: 14 de Septiembre de 2009, 19:49:57 »
Citar
as a deshabiltar la interrupción, solamente eso, el timer seguirá contando y si tu rutina demora mas de 2ms (Según el ejemplo que expusiste) se perderá esa interrupción y detectarás la próxima.

si, lo deshabilito cuando quiero que ejecute unas instrucciones que no tienen un funcionamiento normal cuando ocurre interrupciones, como las comunicaciones por ejemplo
me he decidido por el timer1, que segun he visto se puede detener su marcha y volve a reanudarlo.
el encargado de esto es el bit TMR1ON  del registro T1CON

EN CCS COMO haria, definiendo a T1CON Con un alias y asi acceder al bit TMR1ON, voy a probarlo,
si existen funciones predefinidas por favor publiquenlo


 

anything