Если я пытаюсь проверить входной 5-байтовый массив (p) по сравнению с 5-байтовым массивом, хранящимся во флэш-памяти (data), используя следующую функцию (e2CheckPINoverride), чтобы просто вернуть либо значение true, либо false.
Но, похоже, что бы я ни пытался, он возвращает только «ложь».
Я вызываю функцию здесь:
if (e2CheckPINoverride(pinEntry) == 1){
PTDD_PTDD1 = 1;
}
else{
PTDD_PTDD1 = 0;
}
Вот функция:
BYTE e2CheckPINoverride(BYTE *p)
{
BYTE i;
BYTE data[5];
if(e2Read(E2_ENABLECODE, data, 5)) {
if(data[0] != p[0]) return FALSE;
if(data[1] != p[1]) return FALSE;
if(data[2] != p[2]) return FALSE;
if(data[3] != p[3]) return FALSE;
if(data[4] != p[4]) return FALSE;
}
return TRUE;
}
Я уже назначил true и false в файле define.h:
#ifndef TRUE
#define TRUE ((UCHAR)1)
#endif
#ifndef FALSE
#define FALSE ((UCHAR)0)
#endif
и где
typedef unsigned char UCHAR;
Когда я перебираю код, он правильно выполняет все проверки, передает правильное значение, сравнивает его правильно, а затем прерывает в правильной точке, но не может обработать возвращаемое значение true?
пожалуйста, помогите?