Sieht eigentlich richtig aus. Hast du's mal auf einem realen AVR
ausprobiert? Welche der vier Bytes sind miteinander vertauscht?
Q20 mit Q21 und Q22 mit Q23 oder
Q20 mit Q23 und Q21 mit Q22?
Peter wrote:
> ??? => Welcher Prozesor?
Prozessor ist ne Mega48, allerdings will/muß ich den Algorithmus erstmal
zu Testzwecken im SImulator laufen lassen
yalu wrote:
> Sieht eigentlich richtig aus. Hast du's mal auf einem realen AVR> ausprobiert? Welche der vier Bytes sind miteinander vertauscht?>> Q20 mit Q21 und Q22 mit Q23 oder> Q20 mit Q23 und Q21 mit Q22?
Das High und das Low byte wird vertauscht
ALso MOVW A:B, C:D führt dazu das später in A:B der Wert von D:C steht,
erwarten würde ich aber C:D...
Klar könnte ich das jezt einfach umdrehen, aber das wäre etwas unsinnig
meiner Meinung nach, wenn ich das mache ohne zu wissen warum, und dann
wunder ich mich später wieder.
Hallo,
@Läubi: laut Befehlsbeschreibung hat Atmel movw nur für geradezahlig
startende Paare definiert...
(i) MOVW Rd+1:Rd,Rr+1Rr d E {0,2,...,30}, r E {0,2,...,30}
was also bei movw r9, r13 rauskommt, ist nicht definiert.
Gruß aus Berlin
Michael
Da ich das gleiche problem hatte:
Ich hatte bei meine soure die definierten temph und templ "vertauscht",
d.h.
1
.def temph=r22
2
.def templ=r23
das führt bei
1
movw zh:zl,temph:templ
zur vertauschung von templ zh und temph zl,.. verwirrend aber diesen
umstand kann man bestimmt als schmutzigen trick einstufen,..
die register vorher richtig deklarieren sollte das problem lösen,..
gruß
Arg.. Problem war: Ich hatte für die eine Variable die Register
aufsteigend (R7, R8, R9, R10), für die Andere die Register
absteigend (R14,R13,R12,R11) --> beides gleich --> Problem gelöst.
Dann entsprechen aber die .defs in deinem ersten Post nicht deinem
ursprünglichen Programm ;-). Die richtige Registerreihenfolge war das,
worauf ich als erstes geschaut habe.
Läubi Mail@laeubi.de wrote:
> Arg.. Problem war: Ich hatte für die eine Variable die Register> aufsteigend (R7, R8, R9, R10), für die Andere die Register> absteigend (R14,R13,R12,R11) --> beides gleich --> Problem gelöst.
Bei Posten von Codefragen ist Copy und Paste allererste Bürgerpflicht
!!!
Wer dagegen verstößt, wird geteert und gefedert.
Peter
> Bei Posten von Codefragen ist Copy und Paste allererste> Bürgerpflicht !!!>> Wer dagegen verstößt, wird geteert und gefedert.
Dann heiz hier schon mal deinen Asphaltfertiger an:
Beitrag "was set but never used"
:D :D :D
Ne das sit schon copy paste.
Hatte aber der einfachheithalber nur 2 der 3 Variablendefinitionen
gepostet. Bei den geposteten wars korrekt, bei der ausgelassenen nicht.
Manchmal steckt der Teufel doch im Detail :-\