Hallo AIKI,

ich habe jetzt auch PonyProg. Und sehe die Codesequenzen wie Du sie zeigst. Die Frage war jetzt für mich - warum ist das so programmiert?

Dazu habe ich mir Folgendes überlegt (vielleicht kann das bitte ein Programmierprofi kommentieren ?):
bei den Programmen (z.B. in Assembler) wird üblicheweise die Folge MSB/LSB (most significant byte/least significant byte) eingehalten.

Beispiel mit einem tiny-Befehl in Assembler:
ADIW R25:R24, 2 ;Subtrahiert dez2 vom Word in den beiden Registern R25:R24
siehe dazu auch die Notiz:
http://de.wikipedia.org/wiki/Bitwertigkeit

Es liegt also bei dieser Denkweise nahe, den Code als Word-Schreibweise (zwei Bytes bilden ein Paar) in dieser Art zu präsentieren: das erste Byte ist das HÖHERWERTIGE (höhere Adresse) und das zweite ist das NIEDERWERTIGE (niedrigere Adresse). Die Adressenfolge der Bytes ist demnach:
2 1 4 3 6 5 ...
Es ist also nur eine formalistische Geschichte. Und wie Du vermutlich feststellen kannst - der HEX-Code, den Du mit Ponyprog einlädst, wird (normalerweise, ohne Deine byte swap - Umstellung) in dieser Reihenfolge dargestellt - aber im Controller stehts dann schon richtig drin - und funzt auch wirklich .

Nachtrag: ADIW ist die Addition, SBIW die Subtraktion, sorry.