Thank you. I know this. and are you sure that reason why print is not workin in lower case name of variable ?
lower case was used special to declare my variable. BTW I also have used direct print as in gfvalvo example. it also is not workin.
sure. sorry copy/past lost it...
but as I can see you addit it self.
Once more time I have no error
just print EIFR always printing 0 even where should print 1. why?
finally , I figured out... I tried to catch EIFR in loop() and when interrupt was rised/attached but due to fact that most of time it clear before we enter to ISR ... so I couldnt catch it.
In gfvalvo example , he do not attach INT just print EIFR
So, after few checks of EIFR and INT, want to add some comments to this topic
Dave: The interrupt flag is automatically reset when the program returns from the ISR.
my test shows its reset before or at the same time when we enter in the ISR. 80% of time its clearing before we enter to ISR
Nick: However more accurately than what either of us suggested you should "or" it in (or you have the effect of clearing the other interrupt flag, almost certainly what you don't want).
my test shows, we can put logical one (for INT0) with any available methods (even as EIFR |= 4%3;) INT0 will be cleared. Sure INT1 also can be cleared due to ORing. But if in our project is used only INT0 this is not a problem. Otherwise (if problem) we should use direct writing EIFR = 1;
Nick: Just in case there is an interrupt between reading EIFR and or'ing in the new value.
Im not profi as Nick Dave or Coding_Badly but if we want avoid this scenario then we should not "or"ing as you suggested before... we should put directly , like EIFR = 1;