Hallo, ich habe ein eigenartiges verhalten meines Xmega festgestellt. Ich habe die Register des Xmega so benannt: .def temp =R16 .def temp0 =R17 .def templ =R18 .def temph =R19 .def temp2 =R20 .def temp3 =R21 .def temp1 =R22 .def temp4 =R23 .def Spalte =R24 .def Zaehl =R25 tausche ich dann bei temp und temp0 die Register aus also R16 gegen R17 geht das ganze Programm nicht mehr. Im Programm habe ich nur die Definitonen benutzt nirgendwo aber R16 oder R17.
Irgendwo 16bit Befehle verwendet? Also MOVW oder so.
René Schink schrieb: > .def templ =R18 > .def temp1 =R22 Wie gut, dass du diese beiden immer auseinander halten kannst.
ja mache ich movw temp:temp0, r1:r0
Eben. Und das ist immer movw r17:r16, r1:r0 egal ob temp nun r16 ist oder r17. Dieser Befehl transportiert nicht über kreuz und Atmels Assembler ist nicht sehr wählerisch.
wieder was gelernt danke. Gibt es noch mehr solcher "Fallen"
Gast
#1248478
Hi Wenn man das 'temp'-Gedödel weglässt, auf jeden Fall wesentlich weniger. MfG Spess
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.