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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.