Wenn Im versuchen, eine Eingabe 5-Byte-Array (p) gegen ein 5-Byte-Array in Flash (Daten) gespeichert zu überprüfen, mit der folgenden Funktion (e2CheckPINoverride), um einfach entweder einen wahren oder falschen Wert zurück. Aber es scheint, egal, was ich versuche, es gibt nur als 'false' zurück.
Ich rufe die Funktion hier auf:
if (e2CheckPINoverride(pinEntry) == 1){
PTDD_PTDD1 = 1;
}
else{
PTDD_PTDD1 = 0;
}
Hier ist die Funktion:
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;
}
Ich habe bereits true und false in der Datei defines.h zugewiesen:
#ifndef TRUE
#define TRUE ((UCHAR)1)
#endif
#ifndef FALSE
#define FALSE ((UCHAR)0)
#endif
und wo
typedef unsigned char UCHAR;
wenn ich Schritt durch den Code, führt es alle Prüfungen richtig, es in den richtigen Wert übergeben, vergleicht es richtig und bricht dann an der richtigen Stelle, aber ist nicht in der Lage, den Rückgabewert von true verarbeiten?
bitte helfen?