mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mega8 Portadressen in C


Autor: Moritz Becker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

gibt es irgendwo eine Liste mit den Portadressen?
Ich habe zwar die Register im Datenblatt gefunden, kann damit
jedoch nicht viel anfangen.
Ich kann zwar etwas C, habe aber noch keinen AVR damit programmiert.

Dieses Schema eines Mega128 z.B. verstehe ich nicht.

0x01 PB0
0x02 PB1
0x04 PB2
0x08 PB3

Ist das so gemeint?

(00000001)
(00000010)
(00000100)
(00001000)

Wieso ist gerade das PortB?
Kann mir das bitte jemand erklären?

Vielen Dank,

Moritz Becker

PS Selbstverständlich habe ich schon Überall gesucht, nur vielleicht
nicht nach den richtigen Begriffen...

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

sowas gibt es für alle Ports, zumindest für die Pins, die diese
haben...
Ansonsten bedeutet es schon das, was du da aufgeschrieben hast. Ne
Liste der Portadressen gibt es auch, aber das sind die Pins. Die
Auflistung findest du typischerweise in den Includes. Allerdings soll
dir die wirkliche Adresse egal sein - verwende die symbolischen Namen,
dafür sind sie da.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Wieso ist gerade das PortB?"
das ist nicht portb, nur die pins an portb. portb hat eine 'normale'
adresse

diese aufteilung ermöglicht bitverknüpfungen der einzelnen portpins

Autor: Moritz Becker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

vielen Dank für die schnellen Antworten.
Nur zur Kontrolle:
Statt #define LCD_DC_PIN  0x10  //  PB4
könnte ich auch #define LCD_DC_PIN  PB4 schreiben?

Ich hab' gerade gesehen, dass ich mich etwas geirrt habe.
Ich kann den Portpin also nicht "ohne" PortB setzen?
Das geht immer nur so:
setzen:    PORTB |= LCD_DC_PIN;
rücksetzen PORTB &= ~LCD_DC_PIN;
(Wofür steht eigentlich das "|=" bzw "&="?

Gruß,

Moritz Becker

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich denke, du kannst ein wenig C ;-)

Das | ist ein bitweises Oder, |= Oder mit Zuweisung. & = bitweises Und,
&= Und mit Zuweisung, d.h. a &= b <==> a = a & b

Autor: Moritz Becker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ja kann ich auch (dachte ich),
vergesse aber ständig dinge wie += ++ und so. ;-)

Vielen Dank

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.