I've port C source from C51 to CARM but CARM compiler seem has bug in comparison.
#include <lpc210x.h> //DKARM 1.3h //---------- //AA MACRO ASSEMBLER V0.10a //CA ARM COMPILER V0.10a //LA ARM LINKER/LOCATER V0.10c unsigned char test(void) { return(0xEE); } void main(void) { unsigned char K; K=test(); if ((K&0x0F)!=0x0F) { //0xEE&0x0F=>0x0E //0x0E!=0x0F //but this block don't enter while (1); } else { while (1); } }
This looks like a compiler problem. I've already reported it to engineering. Jon