Olá amigos, estou iniciando em programação de MCU PIC, e tenho uma dúvida.
Tentei fazer uma interrupção usando o TMR0 e TMR1 para e somente o timer 0 esta atuando, segue o meu código em C (compilador CCS), gostaria de saber onde errei e como posso fazer para corrigir.
Abraços.
/* acende leds usando TMR0 E TMR1 */
#include<16F877A.h>
#use delay(clock=8000000)
#fuses HS, NOWDT, PUT, BROWNOUT, NOLVP
#INT_TIMER0 // timer 0 interrupção
#INT_TIMER1 // timer 1 interrupção
//** trata timer 0 ***///
void Exception_T0(){
static boolean led;
static int conta;
SET_TIMER0(61-GET_TIMER0());
conta++;
if(conta == 4){
conta=0;
led = !led;
output_bit(pin_d7, led);
}
}
//*** TRATA TIMER 1 ***//
void Exception_T1(){ //trata evento
static boolean led1;
static int conta1;
SET_TIMER1(3036-GET_TIMER1());
conta1++;
if(conta1 == 2){
conta1 = 0;
led1 = !led1;
output_bit(pin_d0, led1);
}
}
void main(){
//*timer 0*//
SETUP_TIMER_0(RTCC_INTERNAL | RTCC_DIV_256);
SET_TIMER0(61);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER0);
//*timer 1*/
SET_TIMER1(3036);
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
ENABLE_INTERRUPTS(INT_TIMER1);
while(true) //Loop principal
{
}// fim while
}// fim main