Forum: Mikrocontroller und Digitale Elektronik PORTG beim atmega128


von sebastian schreiner (Gast)


Lesenswert?

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

von mmerten (Gast)


Lesenswert?

RTFM ;) die I/O Adresse von PortG ist > 0x1F

von sebastian schreiner (Gast)


Lesenswert?

danke soweit! ;)

aber was tun um den port trotzdem anzusprechen??

mfg
basti

von mmerten (Gast)


Lesenswert?

Port in Register einlesen, Bitoperation, Register auf Port ausgeben und
fertig.

von D. W. (dave) Benutzerseite


Lesenswert?

Und zwar mit LDS und STS.

von sebastian schreiner (Gast)


Lesenswert?

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

von Bri (Gast)


Lesenswert?

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

von Bri (Gast)


Lesenswert?

Oh shit, hab mich vertan, Dave hatte recht!

Also so hier müsste es gehen:

lds R16,PORTG
sbr R16,ping
sts PORTG,R16

von Bri (Gast)


Lesenswert?

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
:-)

von Martin #. (martin-)


Lesenswert?

>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

von Bri (Gast)


Lesenswert?

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