cancel
Showing results for 
Search instead for 
Did you mean: 

Weird bug in stm8 IAR compilers ?

Arman Ilmak
Senior

Hi.

I have faced a weird problem using IAR compilers.

Errorstatus=0;
        Relay_Off;
        delay_ms(200);
          if(Errorstatus==1){
            Errorflag=1;

In this part of my code after I switch the relay off, I put a delay and if an interrupt occurs Errorstatus mentioned in the code changes from 0 to 1 in interrupt handler and the if must change the Errorflag from 0 to 1, but it wont work though Errorstatus is changed from 0 to 1!!

What is the problem?

4 REPLIES 4

Make sure both Errorflag and Errorstatus are declared as volatile if you change/access them in the interrupt handler.

I have defined them as int variables.

Change to volatile int and try again.

Not working