www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik io Adressierung beim AVR


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin gerade von C auf Assembler umgestiegen und verstehe da gerade was 
nicht:

z.B. ist im include file PORTD im IO Bereich definiert, d.h. mit IN und 
OUT kann ich es ansprechen.

Was ist aber jetzt wenn ich mit sbi oder sbic einzelne Bits setzen oder 
abfragen will, da müsste das ganze doch memory mapped sein, ich bräuchte 
also eine andere Adresse als PORTD (PORTD+0x20)
oder was habe ich da nicht verstanden?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IN, OUT, SBIC, SBIS, CBI und SBI benötigen allesamt eine IO-Adresse
(bei den letztgenannten Befehlen auch noch aus einem bestimmten
Bereich).

Memory-mapped geht prinzipiell über LD*- und ST*-Befehle.

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus,

Nein es muss NICHT memory-mapped sein.
für IO-Ports, oder IO-Register:
sbi  portd,1  ;bit-1 setzen
cbi  portd,7  ;bit-7 löschen

für Daten-Register
sbr  r16,4    ;= ori r16,4
cbr  r16,4    ;= r16 AND (255-4)
WICHTIG: sbr und cbr arbeiten NICHT bitweise wie SBI/CBI, sondern sind 
nichts weiter als ein ORI (ist auch der gleiche OP-Code)

Das alles geht aber auch eindeutig aus dem AVR-Befehlssatz hevor, wenn 
Du in Assembler arbeiten willst MUSST Du den ohnehin SORGFÄLIG(!!) 
durcharbeiten.

Jochen Müller

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!
Hätte ich wirklich selber rausfinden müssen ...

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.