mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pins zu Port zusammenfassen


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen
Bin noch nicht so ganz fit in AVR Assembler und hätte eine Frage dazu.
Kann ich einzelne Pins zu einem Port zusammenfassen bzw. definieren.
Es geht darum einen 8Bit Datenbus zu bekommen jedoch hab ich nur keinen
komplette Port mehr frei um diesen zu nutzen sondern nur noch einzelne
Pins.

Diese Pins möchte ich nun zu einem Port definieren.
Geht das?

Dacht irgendwie mir equ oder so definieren aber finde nix und bin mir
nicht sicher.

Danke schonmal für Eure Hilfe!

Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann sich da sicherlich ne Funktion dafür schreiben, die dann den
8bit Wert auf die einzelnen Pins runterbricht.
z.B. 0xXX & 0xF0 -> PortA
     0xXX & 0x0C -> PortB
     0xXX & 0x03 -> PortC
Vielleicht muss nocht der eine oder andere ShiftOperator mit rein damit
es passt.

Aber vielleicht gibts ja auch die Möglichkeit durch Änderung der
Hardware einen kompletten Port frei zu bekommen

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoi, mit equ allein wirst du da nicht weiter kommen. Du musst das schon
bei jedem Zugriff aufdröseln bzw. eine Funktion bauen, die das macht.
Daher unbedingt überlegen, wie oft dieser Datenbus gebraucht wird und
welchen Datendurchsatz der liefern soll. Ggf. wirklich versuchen einen
ganzen Port frei zu bekommen...

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das mußt Du meines Wissens selbst erledigen. Also die Ports in einzelne
Register eilesen, die gewünschten Bits per and ausmaskieren, notfalls
passen schieben und or-Vernüpfen.
Also möglichst wenig verteilen und Bits nebeneinander benutzen.
Umsortieren ist oft besser, Display-Steuerleitungen z.B lassen sich gut
auf verschiedene Ports verteilen, sbi und cbi sind da ja sowieso
einzeln. Auch LED und andere Sachen, die Bitweise gesteuert werden,
bieten sich da an.
Ich sortiere in meinen Projekten auch meist mehrmals um, da macht es
sich dann bezahlt, wirklich jeden Port, jedes Bit und jede Konstante
per .def/.equ definiert zu haben, dann hält sich der Aufwand in
Grenzen.

Gruß aus Berlin
Michael

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.