Código feito em CCS C Compiler
#include <16f628a.h>
#fuses intrc_io,nowdt, nomclr
#use delay(clock = 4MHz)
#use fast_io(a)
#use fast_io(b)
#define use_portb_lcd TRUE//configurando no port b
#include <lcd.c>
int cont, timer;
//diretiva de interrupção do timer 0
#INT_TIMER0
void contador(void){
lcd_putc("\fINTERRUPCAO \n ATIVADA");
for(cont = 0; cont < 5; cont++){
output_low(pin_a0);//nivel baixo no pino a0
output_high(pin_a1);//nivel alto no pino a1
delay_ms(500);
output_low(pin_a1);
delay_ms(500);
set_timer0(250);
}
lcd_putc("\fINTERRUPCAO \n FINALIZADA");
delay_ms(2000);
lcd_putc("\fVOLTANDO AO \nPROGRAMA");
delay_ms(2000);
lcd_putc("\fAGUARDANDO\NINTERRUPCAO");
delay_ms(100);
}
void main(void){
set_tris_a(0xf0);//1/2 como entrada e 1/2 como saída
set_tris_b(0x00);//port saida
output_b(0x00);
ENABLE_INTERRUPTS(GLOBAL);//chave geral da interupcao
ENABLE_INTERRUPTS(INT_TIMER0);//habilitando a interrupcao
SETUP_TIMER_0(RTCC_EXT_L_TO_H);//declarando oscilador xnterno e incremento atraves do RA4 , COLOCANDO A BORDA DE DESCIDA PARA SUBIDA
SET_TIMER0(250);//setando em 250
lcd_init();
lcd_putc("\fAGUARDANDO\nINTERRUPCAO");
while(true){
output_high(pin_a0);
delay_ms(500);
output_low(pin_a0);
delay_ms(500);
timer = get_timer0() + 6;//captura atraves da função e soma + 6
lcd_putc("\fAGUARDANDO\nINTERRUPCAO");
printf(lcd_putc," %u", timer);
}
}
Nenhum comentário:
Postar um comentário