Tom K. schrieb:
> Eine 1 ist ohne weitere Angaben ein int und damit auf dem AVR 16 bit
> lang. Bei 17 mal linksshiften ist sie also links herausgefallen und das
> Ergebnis ist 0. Damit das nicht passiert, muss der Compiler wissen, dass
> er die 1 nicht als int, sondern gleich als einen 32bit-Typ behandeln
> soll:
>
>
> PS: Zu langsam...
Alles gute Einwände, die ich aber getestet hatte.
Ich hatte sogar ((uint32_t)1<<17) genommen. Das klappt alles nicht.
EDIT: Ich habe es jetzt doch. Ich dussel habe nur in der Abfrage den
32-Bit Cast gemacht, aber nicht beim Setzen des Bits. Jetzt geht es!
Danke!
Bei sowas wäre das klug, wenn der Compiler das bemerken würde. Tricky
Falle!