Hallo und frohe Weinachten Kann mir von euch jemand erklären warum folgendes Code eine warnung beim compilieren ausgibt: PLL0STAT = (1 << PLOCK_STAT); Die Warnung lautet: warning: left shift count >= width of type Definiert ist alles folgendermasen: #define REG16 (volatile unsigned short*) #define BIT10 0x00000400 #define PLL0STAT (*(REG16 (0xE01FC088))) #define PLOCK_STAT BIT10 Das ganze wird mit dem GCC für ARM compiliert: arm-elf-gcc (GCC) 4.0.1 (WinARM) Beim ARMGCC sind short Variablen doch 2Byte lang, da müsste doch ein schift um 10 bit fungtionieren. Oder ich hab einfach nur ein brett vorm Kopf und seh den Fehler nicht. mfg Max
Das klappt so nur auf einer Maschine, deren Datentyp "in" mindesten 1025 Bits gross ist. Was steht denn da? PLL0STAT = (1 << 1024);
Hi PLOCK_STAT definierst du als BIT10 was als 0x400 definiert ist. Du shiftest deine 1 als um 1024 Stellen nach links. Das ist dann doch etwas viel :-) Matthias
Hallo ok, ihr habt recht. Wie gesagt, bei mir hat sich das ganz logisch angehört ;) Jetzt gehts auf jeden fall. Danke! Max
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.