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.
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
Die Hausnummern zu den internen Registern findest Du im Handbuch im Kapitel: "30. Register summary".
Danke Spess53, ich war wohl blind oder wollte nicht glauben, das es so einfach ist. Aber es geht wirklich mit LD wenn ich zum IO-Register noch doe 0x0020 dazu addiere, weil die IO-Register erst bei 0x0020 anfangen.
spess53 schrieb: > Den IO-Bereich erreichst du z.B. mit mit ld rd,Z. Z muss dazu mit > Speicheradresse deines Registers geladen werden. Und die Adresse in Klammern nehmen (höhere). PortA = 0x22 PortB = 0x25 ... PortG = 0x34
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
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 :-)
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.