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


von Christian Sander (Gast)


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

von Buchmann (Gast)


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.

von ...HanneS... (Gast)


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...

von ...HanneS... (Gast)


Lesenswert?

Achja, schau mal in die Include-Dateien, da wird das auch
praktiziert...

...HanneS...

von ...HanneS... (Gast)


Lesenswert?

Sorry, Tippfehler... (wie peinlich...)

...

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

...

...HanneS...

von Christian Sander (Gast)


Lesenswert?

Danke, das hilft mir schon mal sehr viel weiter.

Gruß,

Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.