mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Assembler Anfängerfrage Bitdefinition


Autor: Christian Sander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
liebes Forum,

ich habe ein Register definiert. Jetzt möchte ich die 8 Bits im dem
Register auch noch mit Namen versehen, damit ich Sie später im
Programmcode leichter verwenden kann.

Wie werden die Bits definiert. Ich habe leider darüber keine doku
gefunden, und habe mir selbst was zurechtgereimt.

  .def   statbits=r25  ;Register zur allgemeinen Verwendung

  .equ  Ser_Busy=1
  .equ  TX_Ready=2
  .equ  RX_Ready=4
  .equ  int_Rx_Ready=8

So richtig, oder habe ich mich da verhaspelt?

Grüße aus München,

Chris

Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
glaube nicht das das so funktionert.. du legst hier im prinzip nur eine
variable statbits an, die das Register25 benutzt. Die Equations
erzeugen nur "Textersetzungen" für den Compiler, die nach der
Übersetzung nur noch als Zahlen im Code stehen.
Bin mir aber nicht zu 100% sicher.

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon fast richtig, musst aber bei 0 beginnen, die Werte sind 0...7.

Achte aber darauf dass du beim Setzen/Löschen nicht das Bit
(0...7)sondern die Bitmaske (0...255) brauchst.

.def flags=r16   ;das Register
.equ erstes=0    ;Name für Bit 0
.equ letztes=7   ;Name für Bit 7

...

 sbrs flags,erstes  ;überspringt wenn Bit7 gesetzt
 rjmp irgendwohin

...

 sbr flags,(1<<erstes) ;hier wird Bit 0 gesetzt, indem eine 1 um
                       ;den Wert von erstes (also 0) nach links
                       ;verschoben wird

 cbr flags,(1<<erstes)|(1<<letztes) ;hier werden Bit 0 und Bit 7
                                    ;gelöscht, also 2^0 OR 2^7 (129)
                                    ;dient als Maske zum Löschen...

Bit- & Bytebruch...
...HanneS...

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achja, schau mal in die Include-Dateien, da wird das auch
praktiziert...

...HanneS...

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, Tippfehler... (wie peinlich...)

...

 sbrs flags,erstes  ;überspringt wenn Bit0 gesetzt (nicht Bit7!)
 rjmp irgendwohin

...

...HanneS...

Autor: Christian Sander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das hilft mir schon mal sehr viel weiter.

Gruß,

Christian

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.