Pessoal, estou com o seguinte problema: tenho um acionamento com dois botões, sendo um incremento e o outro decremento. Ao utilizar somente eles, tudo jóia, não há problemas. Porém, quando habilito uma interrupção no Timer0 (o sistema precisa dela para gerar um PWM), os botões se tornam inativos. Eis uma parte do código (estou utilizando o MikroC):
...
#define Alto PORTB.F1
#define Baixo PORTB.F2
unsigned int cnt = 0;
signed int i = 25;
void interrupt(){
cnt++;
TMR0 = 236;
INTCON = 0x20;
if (cnt <= i){
Alto = 1;
Baixo = 0;
}
if (cnt > i){
Alto = 0;
Baixo = 1;
}
if ((cnt > 50)){
cnt = 0;
}
}
void main (){
PORTB = 0;
TRISB = 0;
PORTA = 0;
TRISA.F0 = 1;
TRISA.F4 = 1;
OPTION_REG = 0x80;
TMR0 = 236;
INTCON = 0xA0;
CMCON = 0x07;
...
Simulei no Proteus e funcionou direitinho, porém no hardware aconteceu este problema. Não sei se posso estar esquecendo algo, mas já verifiquei esquemas e literaturas aqui e não encontrei nada. Estou trabalhando com o PIC 16F628A (chatinho de configurar!) e cristal de 8MHz.