Forum: Mikrocontroller und Digitale Elektronik einzelnen Port-Pin auslesen


von micha (Gast)


Lesenswert?

Hallo,

kann mir irgendjemand sagen wie ich einen einzelnen Pin eines IO-Ports
in Assembler auslesen und speichern kann? Mir ist schon klar, dass ich
über DDRx den Pin als Eingang definieren muss. Aber mir ist bisher nur
gelungen den gesamten Port einzulesen. Gibt es ein spezielles
Register/Flag um den Portzustand abzuspeichern?

Vielen Dank für eure Hilfe!

Gruß, Micha

von Peter Dannegger (Gast)


Lesenswert?

sbis pind, pd5
rjmp pd5_ist_0
rjmp pd5_ist_1


pd5_ist_1:


pd5_ist_0:


Peter

von micha (Gast)


Lesenswert?

Hi,

danke für die schnelle Antwort. Dachte mir fast, dass es nur so geht.
Irgendwie umständlich...

von mmerten (Gast)


Lesenswert?

alternativ in T-Flag des SREG

bset 6
sbis pind, pd5
bclr 6
...                           ;T-Flag enthält hier den aktuellen Wert
PIND,PD5

von Rolf Magnus (Gast)


Lesenswert?

> kann mir irgendjemand sagen wie ich einen einzelnen Pin eines
> IO-Ports in Assembler auslesen und speichern kann?

in r16, PIND
andi r16, (1 << PIND5)

Jetzt ist in r16 nur noch das Bit von PIND5 übrig. Alle anderen sind 0.

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.