Hi, was eigenartiges: #define SCAN_LIM_HI (unsigned long long)0x466666660000 volatile unsigned long long dds_lo_tw; void ebbes(void) { if(dds_lo_tw>SCAN_LIM_HI) pcWriteChar('#'); } Komischerweise ist das 'if' hier immer true, egal ob dds_lo_tw kleiner oder grösser als SCAN_LIM_HI ist. Gleiches Ergebnis mit if(dds_lo_tw<SCAN_LIM_LO) und #define SCAN_LIM_LO (unsigned long long)0x08637BD0. Laut http://mspgcc.sourceforge.net/doc_memapi.html ist long long unterstützt und 8 bytes lang. Ist das dann ein Fehler in mspgcc dass der Vergleich nicht richtig funzt? danke, - jfw
Der typecast auf eine Konstante, die bereits zu kurz ist, ist witzlos. Hänge stattdessen ein LL (oder ULL) an die Konstante an. Bekommst Du denn dafür keine Compilerwarnung? Würde mich wundern. Oder hast Du kein -W -Wall in der Kommandozeile?
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.