Atmega2560 ASM Pins im oberen Speicherbereich adressieren

Gast #5698736
Lesenswert?

Hallo, es handelt sich um einen Atmega 2560 und Assembler. Ich möchte 
einzelne Pins im PortL in Assembler steuern. Der PortL liegt im oberen 
Speicherbereich, daher geht das mit SBI und CBI leider nicht. Gibt es im 
oberen Speicherbereich auch eine Möglichkeit einzelne Pins direkt 
anzusprechen oder muss ich zwingend mit LDS das gesamte Register 
einlesen, den entsprechenden Pin setzen bzw. löschen und wieder mit STS 
ins PortL-Register speichern?
Gast #5698762
Lesenswert?

Heini schrieb:

> Gibt es im
> oberen Speicherbereich auch eine Möglichkeit einzelne Pins direkt
> anzusprechen oder muss ich zwingend mit LDS das gesamte Register
> einlesen, den entsprechenden Pin setzen bzw. löschen und wieder mit STS
> ins PortL-Register speichern?

Zwingend einlesen musst du nicht, jedenfalls nicht bei jedem Pinwackeln, 
schreiben allerdings schon.

Das Einlesen kann man umgehen, indem man den letzten Zustand des Ports 
in einem Register hält. Ob das sinnvoll ist, hängt natürlich davon ab, 
wie häufig sich was ändern soll/muss.
Gast #5698768
Lesenswert?

c-hater schrieb:
> Zwingend einlesen musst du nicht, jedenfalls nicht bei jedem Pinwackeln,
> schreiben allerdings schon.
>
> Das Einlesen kann man umgehen, indem man den letzten Zustand des Ports
> in einem Register hält. Ob das sinnvoll ist, hängt natürlich davon ab,
> wie häufig sich was ändern soll/muss.

Ja, das war jetzt nur beispielhaft mit dem immer Einlesen. Okay, das 
habe ich mir schon fast gedacht dass ich das nur mit einer 
Bit-Maskierung machen kann.
Danke für die Antwort

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren