Autor Tema: No interrumpe el timer1  (Leído 2082 veces)

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

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
No interrumpe el timer1
« 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:

Código: [Seleccionar]
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]

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: No interrumpe el timer1
« Respuesta #1 en: 13 de Febrero de 2009, 12:42:05 »
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );
INT_TIMER1

EDIT:
wtf! se envio mientras escribia.. q algun moderador lo borre porfa jeje
« Última modificación: 13 de Febrero de 2009, 12:46:07 por gera »

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: No interrumpe el timer1
« Respuesta #2 en: 13 de Febrero de 2009, 12:44:12 »
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);

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: No interrumpe el timer1
« Respuesta #3 en: 17 de Febrero de 2009, 09:01:30 »
Ese era el problema, me hacia falta T1_INTERNAL. Ahora anda perfecto. Muchisimas gracias por la ayuda!!!