Registeradresse von z.B. PORTB?

Gast #181023
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.
Gast #181024
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 :)
Gast #181025
> 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. :-)
Gast #181026
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.