Beste,

Ik wil mijn programma dat ik in mikroC geschreven heb, simuleren met de debugger van MikroC zelf. Maar als ik het wil simuleren loopt hij de main af maar komt hij niet in mijn interrupt gedeelte alhoewel ik toch mij GPIO ingang verandert. Weet iemand waarom dit komt of zien jullie de fout in mijn programma?

Alvast bedankt!




unsigned int teller = 0;

void interrupt(void){
 if(INTCON.INTF == 1 ){           // Kijkt als er een interrupt is op GP2/INT
  if(INTCON.GPIF == 1){           // Kijkt als er een interrupt is op GPIO

     if(GP0_bit == 0){            // Kijkt als GP0 laag is
      teller=teller+1;            // Teller wordt 1
      GP5_bit = 0;}

     else if (GP0_bit ==1){
          if (teller ==1){
           GP5_bit = 1;           // Zet GP5 terug hoog
           INTCON.INTF = 0;       // Clear Interrupt Flag
           teller = 0;}           // Teller op 0 zetten
          else if (teller ==0){
           GP5_bit = 1;
          }
     }
}
}
}
void main()
{
  TRISIO = 0xDF;                  // Zet GP5 als output
  GP5_bit = 0x20;                 // Zet GP5 hoog
  INTCON.GIE = 1;                 // Enable Global Interrupt  
  INTCON.GPIE = 1;                // Enables the GPIO change interrupt
  INTCON.INTE = 1;                // Enable RB0/INT external Interrupt
  INTCON.PEIE = 1;                // Enable all unmasked peripheral interrupt
  OPTION_REG.INTEDG = 0;          // Interrupt on falling edge
  INTCON.INTF = 0;                // Clear Interrupt Flag
  INTCON.GPIF = 0;                // Clear Interrupt Flag
  IOC = 0x01;                     // Enable GPO als change bit
  
do {
   Delay_ms(500);
   
} while (1);

}

We weten niet wat voor controller je gebruikt, dus er valt niet veel over te zeggen...

Dit is een bekend probleem met ME: de debugger ondersteunt gewoon geen interrupts. Het ligt dus niet aan je programma.
Wat je kunt doen is het gegenereerde COF bestand laden in MPLab 8.xx door het naar het werkblad van de IDE te 'draggen' en vervolgens de source openen in MPLab. Je moet wel het device aangeven (Configure>Select device) en een debugger kiezen (Debugger>Select Tool). De ingebouwde SIM werkt prima voor dit soort zaken.