Forum: Mikrocontroller und Digitale Elektronik Einzelne Bits eines Bytes ändern


von Steffan (Gast)


Lesenswert?

Hallo liebe Forenbesucher,

ich möchte gerne mittels Atmega8 3 Schieberegister ansteuern, was auch 
prinzipiell wunderbar funktioniert. Allerdings suche ich im Moment nach 
einer Möglichkeit, die Bytes, welche ich zum Schieberegister 
"hinausschieben" möchte, so zu verändern, sodass ich jedes einzelne Bit 
eines Bytes sepperat ansprechen und verändern kann.

Beispiel: (In Bascom)

8 Varriablen deklariert: A B C D E F G H


Dim Daten as Byte
Daten = ABCDEFGH
und jetzt könnte ich jedes einzelne Bit sepperat programmieren.

A = 1
B = 0
C = 1
....usw


(Das dieser Programmtext nicht funktioniert, weiß ich, ich habe ihn nur 
zur Veranschaulichung meines Problems gewählt.)

Bestimmt gibt es da eine Möglichkeit, allerdings weiß ich leider nicht 
einmal was ich in google/Forensuche eingeben soll. (Bitmanipulation 
o.Ähnliches habe ich schon versucht)


Im Anhang befindet sich mein Programmtext, mit dem ich die Register 
ansteuere, villeicht möchte den ja jemand sehen.


Ich bedanke mich jetzt schon einmal im Vorraus für eure Hilfe und 
wünsche allen Lesern einen guten Rutsch ins neue Jahr!

Grüße,
Steffan

von Gut Viehling (Gast)


Lesenswert?

>Im Anhang befindet sich mein Programmtext, mit dem ich die Register
>ansteuere, villeicht möchte den ja jemand sehen.

Ja -und kann nicht!

von Steffan (Gast)


Angehängte Dateien:

Lesenswert?

Sorry, habe den Anhang vergessen ;)

Grüße,
Steffan

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Schau dir bitte mal die Seite Bitmanipulation an, da wird sehr viel 
zu diesem Thema erklärt.

Nicht erwähnt sind dort die sehr nützlichen Befehle "bst" und "bld", 
aber die findest du in der Instruction-Set-Doku von Atmel.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

In C würde man das mit einer Union Deklaration hin bekommen.

von Dino Dieter (Gast)


Lesenswert?

Hallo

Geht in Bascom genuso wie Port Pins setzen

daten.0 = 1      setzen von Bit 0 in daten
daten.0 = 0      löschen von Bit 0 in daten

Geht auch schön mit Variblen

a = 5

daten.a = 1

Gruß
Dieter

von Steffan (Gast)


Lesenswert?

Hallo,
vielen, vielen Dank für eure Antworten, ich werde mich gleich mal daran 
machen, eure Tipps auszuprobieren.


Grüße,
Steffan

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.