Hallo,
in meinem Programm frage ich im Mainloop ab ob ein Taster Key1 gedrückt
wurde. Falls dieser Taster gedrückt wurde (entprellt natürlich) und ein
Timer (alarm_timer) == 0 ist soll eine Routine abgearbeitet werden.
Komischerweise wird die Routine auch abgearbeitet wenn der Timer > 0
ist - allerdings nur einmal, danach scheint der Mikrocontroller
registriert zu haben dass der Timer nicht == 0 ist!
Weiß jemand warum? Optimierungswahn des Compilers?
Hier der Code:
1 | BYTE volatile alarm_timer = 5;
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | if( bit_is_set(flags2, KEY1_WELLPRESSED_flags2) &&
|
6 | bit_is_clear(flags2, KEY1_WORKDONE_flags2) &&
|
7 | (alarm_timer <= 0)
|
8 | )
|
9 | {
|
10 | // machwas - beim ersten Durchlauf geht er hier rein trotz
|
11 | alarm_timer > 0!
|
12 | ...
|
13 | }
|
14 | }
|
Danke!