Ich habe gerade einfach mal unter Linux diesen Code compiliert und ausgeführt:
und ich erhielt die AusgabeCode:#include <stdio.h> int main(void) { unsigned long i=0; unsigned long t; for(i=0;i<20;i++) { t= 1<<i; printf("%u \n", t); } return 0; }
also kann es an deinem Programmcode eigentlich nicht liegen. Allerdings wundert mich dein Ergebnis auch, denn du hast als letztes Ergebnis genau den maximalen Wert den die Variable annehmen kann minus den erwarteten Wert.Code:1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288
Ich kann aber auch nicht sagen woran das liegen könnte. Vielleicht ein Fehler im AVR-Studio?
Aber eine andere Möglichkeit weiß ich auch nicht.







Zitieren

Lesezeichen