Результат закономерный.
Но вот вопрос. Даже если убрать мои #undef, ##, наставить скобок на каждую строку после if и проч, не могу избавиться от мысли, что все равно проект под ИАром компилироваться не будет.
Например :
IFG1 &= ~OFIFG;
вызывает
Error[Pm031]: bitwise operations shall not be performed on signed integer types (MISRA C 2004 rule 12.7) D:\Work\Type Kplus\_PCB\k_config.c 18
но константа определена как
#define OFIFG (0x02)
Если исправить родное определение на
#define OFIFG (0x02u)
ошибок нет.
Да, еще
while (IFG1 & OFIFG) ;
Error[Pm029]: this bitwise operation is in a boolean context - logical operators should not be confused with bitwise operators (MISRA C 2004 rule 12.6) D:\Work\Type Kplus\_PCB\k_config.c 23
Это как нужно написать, чтобы извратиться?
А вообще эту опцию кто-нить использует? Как средство повышения надежности программ
