mikrocontroller.net

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


Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. :-)

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.