contador en ccs con timer0

#1
hola saludos a todos
mi pregunta de hoy es la siguiente: se me pidió realizar un programa en el cual hay un pulsador conectado al pin ra4 de un pic 16f877 y cuando presiono el pulsador activa la interrupción timer0 que esta configurada como contador a través de ra4 y debe mostrar en un lcd el conteo pero al momento de simular en proteus no hace nada el programa, pd: solo funciona si le coloco una señal de reloj al pin ra4 pero el ejercicio me pide que ejecute la función del timer solo cuando se pulse. adjunto el código en c
Código:
#include <16F876A.h>
#fuses XT,NOWDT
#use delay(clock=4000000)
#use standard_io(b)
#use standard_io(a)
#use standard_io(c)
#define  lcd_data_port getenv("sfr:portc")
#include <lcd.c>
int h=0;
#int_TIMER0 //la siguiente función tiene que ser la de interrupción del TMR0

void  TIMER0_isr(void) //function interrupción TMR0
{
printf(lcd_putc,"\fconteo= %u",h);
h++;
delay_ms(100);
}
 

void main()

{
lcd_init();
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_4);
enable_interrupts(INT_TIMER0);
set_TIMER0(0x00);

 

 //inicializa el timer0

//el bucle infinito es necesario ya que si el micro entra en sleep

//desactiva la interrupción del TMR0

while(true){
output_b(0x55);
}
}
 
Última edición por un moderador:

Temas similares

Arriba