TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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!!!!
-
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í...
#int_RTCC
void RTCC_isr(void)
-
Muchas Gracias! Efectivamente ese era el problema.-
:-/