Alguem sabe como usar interrupção no mikroc, preciso usar para gerar um evento mas não consigo nem no simulador nem no debuger.
Os registros TMR0L e TMR0H não são acrescentados, estão sempre em zero.
Postei parte do código para análise para ver onde pode estar o erro.
int cont;
// inicializa interrupcoes
void TMR0_init(){
TMR0L = 0; //limpa TMR0L
INTCON = 0xA0; //habilita TMRO
T0CON = 0x80;
}
// leitura AD
void _ad(){ //rotina AD
CMCON=7; //comparadores desligados
ADCON1=7; //canal A analogico
TRISA=1; //AN0 entrada e restante saida
_ad0=ADC_Read(0); //le e guarda valor
_ad0=(_ad0/2); //converte 1024 para 255
byteToStr(_ad0,num1); //converte numero para string
}
// controle Backlight
void _back(){ //rotina backlight
PWM1_Init(2000); //configura PWM com 10Khz
PWM1_Start(); //start do PWM
PWM1_Set_Duty(_ad0); //coloca valor lido pelo AD para setar PWM
}
// interrupcao
void interrupt(){
cont++; // Increment value of interval on every interrupt
INTCON = 0x20;
}
// escrita GLCD
void _lcd(){ //rotina lcd
//Glcd_Fill(0); // limpa GLCD
Glcd_Write_Text("vaz ele", 22, 0, 1);
Glcd_Write_Text("tronics", 64, 0, 1);
Glcd_Write_Text("eixo X:", 0, 2, 1);
Glcd_Write_Text(num1, 46, 2, 1);
Glcd_Write_Text("eixo Y:", 0, 3, 1);
Glcd_Write_Text(num1, 46, 3, 1);
Glcd_Write_Text("eixo Z:", 0, 4, 1);
Glcd_Write_Text(num1, 46, 4, 1);
delay_ms(100);
}
// rotina MAIN
void main(){ //rotina main
Glcd_Init(); // initializa GLCD
Glcd_Set_Font(font5x7, 5, 7, 32); // define fonte
Glcd_Image( vaz_bmp );
delay_ms(6000);
Glcd_Fill(0); //limpa GLCD
TMR0_init(); //inicializa Tmr0
while(1){
_lcd();
//_back();
}
}