2019-08-30 05:16 AM
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?
2019-08-30 06:06 AM
Make sure both Errorflag and Errorstatus are declared as volatile if you change/access them in the interrupt handler.
2019-08-30 06:18 AM
I have defined them as int variables.
2019-08-30 06:20 AM
Change to volatile int and try again.
2019-08-30 07:02 AM
Not working