Forum: Mikrocontroller und Digitale Elektronik Vergleichsoperationen ATMega8


von perfusor80 (Gast)


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

von peter dannegger (Gast)


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

von perfusor80 (Gast)


Lesenswert?

Danke trotzdem, ich habe es hingekriegt. Problem lag bei
unterschiedlicher Dreh und Zählrichtung. Die Sollposition wurde also
nie erreicht.

Stephan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.