ich versteh die welt nicht mehr... ich versuche pg0 (oder irgendeinen anderen pin) beim atmega128 auf 1 zu setzten aber bei gavrasm kommt: Fehler ==> sbi Ping, PG0 [test.asm,76] 021: Portwert (99) ausserhalb des zulaessigen Bereichs (0..63)! 76: 00000D 9A00 sbi Ping, PG0 und beim avr studio 4: sbi portg, 0 : error : Illegal argument type or count bin ich irgendwie zu dumm und hab was übersehen oder was soll das??? :-/ schonmal danke fürs lesen! mfg basti
danke soweit! ;) aber was tun um den port trotzdem anzusprechen?? mfg basti
Port in Register einlesen, Bitoperation, Register auf Port ausgeben und fertig.
hey david! könntest du mir, als noch recht blutigen anfänger, nen kleines codebeispiel zukommen lassen??? sts und lds hab ich bisher noch net benutzt... mfg basti
Wieso mit lds/sts? Mit in/out geht das, nur sbi geht nicht. Ich würds so machen: in R16,PORTG sbr R16,ping out PORTG,R16
Oh shit, hab mich vertan, Dave hatte recht! Also so hier müsste es gehen: lds R16,PORTG sbr R16,ping sts PORTG,R16
Nochmal zur Erklärung: sbi geht bis Adresse 31, in/out geht bis Adresse 63, für den Rest muss man lds/sts nehmen. Port G liegt auf Adresse 101, also sts/lds nehmen :-)
>Ich würds so machen
So funktioniert es aber nicht.
Hier muss man sts und lds:
1 | ldi r16,0xff |
2 | ;in Port schreiben |
3 | sts PORTG,r16 |
4 | ;Port abfragen |
5 | lds r16,PORTG |
Hab nochwas wichtiges vergessen, sbr funktioniert wie ein ori, also musst du eine Bit-Maske nehmen und nicht die Nummer des Bits! In deinem Fall also: sbr R16,1
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.