TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fmarsilli en 27 de Marzo de 2014, 19:57:51

Título: No puedo hacer funcionar el timer0, pic16f873A, en CCS
Publicado por: fmarsilli en 27 de Marzo de 2014, 19:57:51
Hola a todos, estoy tratando de hacer funcionar el timer0 del pic16f873a, en ccs. Simplemente quiero que me muestre en un display la variación del tiempo, utilizando interrupción del timer0, he leído bastante, pero no logro visualizar los cambios en el display, y creo que es porque nunca entra a la función de interrupción.
Les muestro el codigo


#include <16F873a.h>
#fuses XT, NOWDT, NOPROTECT, NOPUT
#fuses NOLVP
#use delay(clock = 4000000)
#int_RTCC
#include <LCD420.c>
unsigned  int seg=0,mi=0;
void  RTCC_isr(void)
{
//lcd_init();
++seg;
if(seg==60)
{
seg=0;
mi++;
}
if(mi==60)
{mi=0;seg=0;}

lcd_gotoxy(1,4);
printf(lcd_putc, "T=%02u:%02u ", mi, seg);                     
set_timer0(0x83);   //131

}



void main()
{
lcd_init();
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);      //65.5 ms overflow
   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);
   set_TIMER0(0x83);
   while(true)
   {
   lcd_gotoxy(1,4);
 printf(lcd_putc, "T=%02u:%02u ", mi, seg);
   }


}

Gracias a todos!!!!
Título: Re: No puedo hacer funcionar el timer0, pic16f873A, en CCS
Publicado por: AngelGris en 27 de Marzo de 2014, 21:06:48
  Entre #int_RTCC y la función para dicha interrupción (en este caso RTCC_isr) no puede haber nada escrito tendrías que dejar esa parte así...

Código: C
  1. #int_RTCC
  2. void RTCC_isr(void)
Título: Re: No puedo hacer funcionar el timer0, pic16f873A, en CCS
Publicado por: fmarsilli en 31 de Marzo de 2014, 13:23:57
Muchas Gracias! Efectivamente ese era el problema.-
 :-/