AVR IO Register indirekt auslesen

#3830359
Lesenswert?

Hallo an Alle,
ich habe mal wieder ein Problem und finde keine Lösung.

Ich habe eine Steuerung mit einem Atmega 1284P.
Mit der kann ich mich über USB verbinden und beliebige Daten aus dem 
Sram / Eeprom lesen und schreiben.
Nun möchte ich aber meine Datenaufzeichnung erweitern und gerne den 
Status einiger IO-Register mitschreiben.

Gibt es eine Möglichkeit, ein IO-Register (z.B. PORTA) mit einer Adresse 
indirekt zu laden?
Oder gehen da wirklich nur die Befehle IN, LDS?

Laut Hilfe würde der Befehl elpm den IO-Space ansprechen.
Aber leider meinen die nur den normalen Speicherbereich.
Gast #3830371
Lesenswert?

Hi

>Laut Hilfe würde der Befehl elpm den IO-Space ansprechen.
>Aber leider meinen die nur den normalen Speicherbereich.

Den IO-Bereich erreichst du z.B. mit mit ld rd,Z. Z muss dazu mit 
Speicheradresse deines Registers geladen werden.

MfG Spess
Gast #3830409
Lesenswert?

Hi

>Aber es geht wirklich mit LD wenn ich zum IO-Register noch doe 0x0020
>dazu addiere, weil die IO-Register erst bei 0x0020 anfangen.

Aber nur im IO-Bereich von 0..0x3F. Im extended IO-Bereich ab 0x60 darf 
keine 0x20 addiert werden.

MfG Spess
#3830424
Lesenswert?

spess53 schrieb:
> Hi
>
>>Aber es geht wirklich mit LD wenn ich zum IO-Register noch doe 0x0020
>>dazu addiere, weil die IO-Register erst bei 0x0020 anfangen.
>
> Aber nur im IO-Bereich von 0..0x3F. Im extended IO-Bereich ab 0x60 darf
> keine 0x20 addiert werden.
>
> MfG Spess

Danke für den Tip, das hatte ich übersehen...
Wäre mir wahrscheinlich garnicht aufgefallen weil hauptsächlich nur die 
PORTA-PORTD auslesen will :-)

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