Hallo Also wenn ich EinTest() aufrufe sollte doch --- 0 --- zurückkommen, verpasse ich da was in C, oder ist das ein Problem von MPLAB 3.15 von Microchip. uint8_t EinTest(void) { return (0); } while (1) { uint8_t dummy2 = EinTest(); if (dummy2){ NOP(); NOP(); } }
Martin M. schrieb: > oder ist das ein Problem von MPLAB 3.15 Und was ist das Problem? Ich habe deinen Codeschnipsel in Simulation getestet, und die Funktion liefert 0 zurück. Was liefert sie bei dir zurück?
if (dummy2!=0) oder if (dummy2==0) Allgemein geht das ja nicht weil uint8_t=0 nicht immer automatisch auf Boolsches False gecastet wird. (Andere Ummgebungen, MPLAB kenn ich nicht) Bei uninitialisierter Variable dummy2 könnte if(dummy2) als NULL-Check durchgehen.
Also das tritt wohl nur auf wenn über Interrupt Timer aufgerufen werden !
Martin M. schrieb: > das tritt wohl nur auf wenn über Interrupt Timer aufgerufen werden ! volatile Problem?
Danke Philipp K. Nur so sieht der Orginal Code aus, wo ich bemerkte das da was nicht stimmt. Ich habe das vorige Beispiel genommen, weil sonst gepostet wird das was mit meinen TRIS Ports nicht stimmt if( get_key_press( KEY1 )) { IO_RE1_Toggle(); bKey1 = true; }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.