Forum: Compiler & IDEs Registeradresse von z.B. PORTB?


von Thomas Pototschnig (Gast)


Lesenswert?

Hallo,

wie bekomme ich unter GCC bei z.B. PORTD nicht den Inhalt des Registers
unter der Adresse PORTB sondern die Adresse von PORTB?

Wenn ich die Registeraddresse habe - wie kann ich darauf zugreifen?
setp z.b. gibts ja nicht mehr ...

von Chris (Gast)


Lesenswert?

Wie bei jeder anderen Variable:
uint8_t* zeiger_auf_portb = &PORTB;
*zeiger_auf_portb |= 1; // bit 0 setzen

Ich vermute aber stark, dass du das nicht gemeint hast, da das absolute
C-Grundlagen sind, die man wirklich beherrschen sollte bevor man sich an
die Mikrocontrollerprogrammierung wagt.
Daher bitte ich deine Frage etwas zu präzisieren.

von Thomas Pototschnig (Gast)


Lesenswert?

Hmm - auf
volatile uint8_t* x = &PORTC;

bin ich selber schon gekommen - hätte nur nicht gedacht, dass das mit
sowas wie PORTC oder so funktioniert -

Mich hat nur das Resultat von
  *x = 0xaa;
wird zu:
 a0c:  8a ea         ldi  r24, 0xAA  ; 170
 a0e:  80 83         st  Z, r24

verwirrt - ich dachte, dass der IO-Bereich vom RAM getrennt wäre - das
ist aber tatsächlich nicht so -
0x0000 - 0x001f = GPR
0x0020 ->0x005f = IO-Register und dann ab
0x0060 das interne RAM ...

Trotzdem danke für deine Antwort -
ich denke wohl zu kompliziert :)

von Chris (Gast)


Lesenswert?

> Trotzdem danke für deine Antwort -
> ich denke wohl zu kompliziert :)

Ja, die AVRs sind in Wirklichkeit gar nicht so kompliziert, wie sie
manchmal scheinen. :-)

von Thomas Pototschnig (Gast)


Lesenswert?

Die AVRs sind genial ... nur die jetzigen ATMEGAs sind schon teilweise
überladen ... mit internen Oszillator, JTAG und und und was man alles
erstmal deaktivieren muss, bevor sich das Ding wie ein classic-AVR
verhält g

Hab lange Zeit die AVRs nur in Assembler programmiert und hab jetzt ein
kleines Projekt, bei dem es sich lohnt mal den avr-gcc/g++
auszuprobieren ... bis jetzt bin ich ja echt beeindruckt - vorallem die
Unterstützung für c++ spezifische Sprachkonstrukte wie Klassen usw
gefallen mir sehr gut ...

Soll zwar noch Probleme mit der STL geben - aber die brauch ich bei
meinem Projekt eh nicht ...

So - schluss mit der Schwärmerei und weiter ans Werk :)

thx und n8

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.