Hallo!!1 ich schreibe die werte des ADC´s in r17, und möchte sie mit eienr konstanten vergleichen. nur leider bringt mir das avr stuido beim simulieren fehlermeldungen: "invalid register" und "Wrong number of operands" hier noch der code: vergleichen: ;ldi r16, 153 ;cp r16, r17 cpi r17, 153 brlo kl12v ;kleiner 12V ;ldi r16, 184 ;cp r16, r17 cpi r17, 184 brsh gr14V ;größer 14V ;ldi r16, 130 ;cp r16, r17 cpi r17, 130 brlo kl11v ;kleiner 11V ret ich weiß nicht was ich falsch mache, vielleicht kann mir ja jemand helfen. danke und gruß
Hast du r17 irgendwie umdefiniert (.equ r17 = ...)? Ansonsten fällt mir da kein Fehler auf, das sollte eigentlich schon funktionieren.
Hallo, ich nehme an, dass Du mit AVR arbeitest....."verträgt" der Assembler das SPACE nach dem Komma ? Gruss Otto
Hallo, Du solltest mal kären, in welcher Zeile der Fehler auftritt, in diesem Code-Ausschnitt gbt es jedenfalls keinen derartigen Fehler beim Build. Gruß aus Berlin Michael
Hi Die Fehlerquelle lässt sich leicht durch anklicken der Fehlermeldung finden. Die Zahl in der Klammer bezeichnet übrigens die Zeilennummer. MfG Spess
Hallo!!! Vielen Dank erstmal für die antwoten ja, ich arbeite mit avr, dem mega8. die fehlermeldungen "invalid register" sind in den zeilen mit dem cpi befehl. wenn ich es jedcoh nach der ausgeklammerten version mache, also erst die konstante in ein register schreiben und dann vergleichen, funktioniert es tadellos. aber mit der methode habe ich eben 6 takte/wörter mehr verbraucht . die fehlermeldung "wrong number of operands" kommt jedoch in diesem block: kl11v: ldi r16, 0b00000000 out PORTB, r16 ldi r16, 0b00000010 ; LED einschalten out PORTD, r16 <------------- in dieser zeile ist die fehlermeldung ret ich weiß leider auch nicht welche probleme der hat, aber für mich sieht alles io. aus. ich werde noch ein bisschen rumprobieren...
nochmal ich. habe das avr studio nun nochmal neu gestartet, und es scheint zu funktionieren.... danke nochmal an alle.
Hi In deinem Code kann ich im Moment keinen Fehler erkennen. Das AVR-Studio hat allerdings die Eigenschaft manchmal nach dem eigentlichen Fehler noch weitere Fehlermeldungen zu erzeugen, obwohl der Code ok ist. Hast du die richtige Includedatei 'm8def.inc' eingebunden? MfG Spess
Hallo!!! ja hatte ich, war auch alles ok soweit. programm hat nach dem neustart vom avr studio funktioniert und kann nun simulieren, keine ahnung was da los war...
schau dir deine Zeilen nochmal genau an. in allen 3 Beispielen oben hast du zwischen cp und cpi die parameter vertauscht. cp r16,17 ist nunmal etwas anderes als cpi r17,[r16] verdrehst du die Parameter, musst du auch die Sprunglogik umkehren. statt brsh <-> brlo statt breq <-> brne statt brcs <-> brcc ...
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.