Als Anfänger mit der Programmierung versuche ich gerade, am PortB meines ATMelS08515 einen 8 Bit A/D- wandler die anliegenen Werte(von 0 bis 255 ) auszuwerten ,,, ich brauche in diesem Fall die anliegenden Werte am Portb mit fesgelegten Werten(33,67 ,178..) zu vergleichen ... DAfür habe ich ertsmals die Befehle SUBI und das N(Negative)-Flag und das S-Flag benutzt ,,, aber mit dem Befehl ( IN R16,PINB ) ; SUBI R16,30,,,( der Wert von R16 ist 198 ..) wird das N-Flag gesetzt ! bei SUBI R16,30 ,( R16 auf 126 geladen... wird das N-Flag geloescht ! das gleiche gilt auch für das S-Flag und andere Befehle wie CPI ! welcher Flag ist in diesem Fall zu benutzen! Danke im voraus !
Zunächst mal: Du mußt nicht unbedingt mit dem SUB-Befehl arbeiten, dadurch wird Dein zu testendes Datenbyte verändert. Schau Dir mal den Befehl CP bzw. CPI an, der setzt die Flags genauso, wie der SUBI. Der Assembler des Atmel ist eigentlich sehr komfortabel, so gibt es Befehle wie BRGE (Branch on Greater or Equal), BRLO (Branch, if Lower) usw. Besser geeignet für solche Vergleiche ist auch das Carry-Flag. Ich möchte Dir empfehlen, das komplette Instruction Set bei Atmel herunterzuladen (PDF-Datei, mehr als 130 Seiten), dort sind alle Befehle eingehend beschrieben.
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.