Цитата(zltigo @ Apr 25 2007, 13:51)

Я удручен не меньше вашего, за Вас и за все "платформы" на которых НЕ СОБЛЮДАЕТСЯ приоритет операции равно (==) перед поразрядным логическим или (|)...
Принимаю соболезнования.
Ошибка в приоритетах влияла, видимо, на незначительные свойства - неподавленный дребезг комбинации клавиш, который не влиял на пользовательские свойства.
Перепроверил.
Это тот же код для MSP430. Тоже IAR.
kDn=2, kUp=8.
А теперь расскажите мне про последовательность операций...
Код
72 if ((pressed_keys==kUp+kDn)&& // now this two keys
73 ((~kbd_status3)&(kUp+kDn)))//and before it wasn't so
\ 00008E F2900A00.... CMP.B #0xa, &pressed_keys
\ 000094 0D20 JNE ??KbdService_6
\ 000096 5E42.... MOV.B &kbd_status3, R14
\ 00009A 7EE3 XOR.B #0xff, R14
\ 00009C 7EB00A00 BIT.B #0xa, R14
\ 0000A0 0724 JEQ ??KbdService_6
74 {found_events|=kUpDn; // set new bit
\ 0000A2 F2D01000.... BIS.B #0x10, &found_events
75 found_events&=~(kUp+kDn); break; } //reset usual bits
\ 0000A8 F2F0F500.... AND.B #0xf5, &found_events
\ 0000AE 3041 RET
Уходя, оставьте свет...