Autor Tema: Aprendiendo con el Timer  (Leído 1985 veces)

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

Desconectado chingolo

  • PIC10
  • *
  • Mensajes: 17
Aprendiendo con el Timer
« en: 30 de Junio de 2010, 16:01:07 »
hola, en el programa que describo abajo quisiera hacer unas preguntas:
int1 si lo incremento ++ va cambiando 0-1-0-1-0-1
en la funcion del timer yo anulo la carga del timer "set_timer1 (3036);" y el timer sigue funcionando , puede ser esto posible???? o es error del proteus.




********************************************************************************************************
#include <16f876.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#use standard_io(b)

int1 cont=0;

#int_TIMER1         //Interrupción Timer1
void temp1s(void)   //Función
{
  if (cont==1)  output_toggle(PIN_B1);   //Cada 2 interrupciones de 0.5s
  set_timer1 (3036);   //recarga del TMR1
  cont++;
 
  }

main ()
{
 
   setup_timer_1 (T1_INTERNAL | T1_DIV_BY_8);
   set_timer1 (3036);                          //recarga del TMR1
   enable_interrupts(INT_TIMER1);             //habilita interrupcion timer1
   enable_interrupts(global);                //habilita interrupción general
 
 while(1)
 {
 
 };
}
gracias!!! estoy dando mis primeros pasos, pido paciencia.

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Aprendiendo con el Timer
« Respuesta #1 en: 30 de Junio de 2010, 16:44:35 »
Hola, a la pregunta que si incrementando con ++ una variable int1 cambia de estado, la respuesta es si.   Para hacer que el timer no funcione, debes colocar una instrucción como: "setup_timer_1(T1_DISABLED);" seguida de "disable_interrupts(INT_TIMER1);", ya que si simplemente quitas la instrucción "set_timer1 (3036);" el timer seguira funcionando y comenzará su conteo desde 0.

Un saludo!