Vergleichsoperationen ATMega8

Gast #149186
Lesenswert?

Hallo,

ich programmiere gerade eine Schrittmotorsteuerung für einen
ATMega8-16PI in Assembler (AVR Studio 3.56). Dafür brauche ich den
Vergleich zwischen einer Sollposition und der Istposition. Die
Sollposition gibt es durch ein AD-gewandeltes und umgerechnetes
Potentiometsignal, die Istposition wird durch Inkrementieren oder
Dekrementieren von einer Referenz aus berechnet. Da die Positionen
zwischen 0 und 300 liegen könne vergleiche ich folgendermaßen:

cp  SollposL,IstposL
cpc  SollposH,IstposH

danach folgen Sprungbefehle je nach Ergebnis des Vergleiches. Leider
funktioniert das noch nicht so richtig und ich vermute der Vergleich
läuft nicht wie gewünscht. Ist es überhaupt möglich diese Befehlsfolge
zu nutzen und macht es einen Unterschied ob ich BRLT oder BRLO als
folgenden Sprungbefehl nutze. Und wie wird das Ergebnis des Vergleiches
erhalten.

Ich danke schonmal im Voraus
Gast #149187
Lesenswert?

Da fehlt noch, wie Du vergleichst !

Das Carry-Flag ist für natürliche Zahlen und das Sign-Flag für ganze
Zahlen.

D.h. es macht einen sehr großen Unterschied, welchen bedingten
Sprungbefehl Du nimmst.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren