TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: aripod en 13 de Febrero de 2009, 12:15:55
-
Necesito ir haciendo una tarea cada 5 segundos y el timer0 no lo puedo usar ya que lo estoy usando para otra cosa. Lo que hice fue:
setup_timer_1(T1_DIV_BY_1); //Tengo un clock de 4Mhz, entonces el contador incrementa cada 1us. Necesito que se
set_timer1(15536); //interrumpa cada 50ms, entonces tengo que poner con set_timer1(x) : X=65536-50000=15536
y en la interrupcion hago esto:
[code]
#int_TIMER1
void Timer1_isr(void)
{
contador_segundos++;
if(contador_segundos==100)
{
modulos_activados=1;
contador_segundos=0;
}
set_timer1(15536);
}
En el main voy chequeando el valor de modulos_activados y ahi tengo los 5 segs. En teoria anda,,,ya lo hacia con el timer0 bien, pero tuve que cambiar al timer1 y no esta andando. Que es lo que hago mal?
Muchas Gracias!![/code]
-
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );
INT_TIMER1
EDIT:
wtf! se envio mientras escribia.. q algun moderador lo borre porfa jeje
-
Quizas no configuraste bien el timer1, proba con esto:
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_1 );
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
-
Ese era el problema, me hacia falta T1_INTERNAL. Ahora anda perfecto. Muchisimas gracias por la ayuda!!!