...vielleicht so?
Oder seh´ ich den Wald vor lauter Bäumen nicht? ...Code:Dim A as bit Dim B as bit Dim C as bit ... Dim ByteA as byte Dim ByteE as Eram Byte ByteA.0 = A ByteA.1 = B ByteA.2 = C ... ByteE = ByteA
Hallo liebe Gemeinde!
in meinem Programm habe ich einige Variablen als Bits dimensioniert:
dim a as bit, b as bit.....
nun will ich diese Bits in einem Byte speichern und dieses dann im EEProm hinterlegen. Leider fehlt mir gerade der Faden wie ich an die Sache herangehen muss, kann mir einer bitte helfen
Grüße MAT
...vielleicht so?
Oder seh´ ich den Wald vor lauter Bäumen nicht? ...Code:Dim A as bit Dim B as bit Dim C as bit ... Dim ByteA as byte Dim ByteE as Eram Byte ByteA.0 = A ByteA.1 = B ByteA.2 = C ... ByteE = ByteA
Hallo mat-sche,
die Hilfe von Bascom verbietet nicht "Dim A As Eram Bit" zu schreiben.
Dim E_byte as Eram Bytenun will ich diese Bits in einem Byte speichern und dieses dann im EEProm hinterlegen.
Dim S_Byte As Byte
A Alias S_Byte.0
B Alias S_Byte.1 etc.
Lesen:
S_Byte = E_Byte
Schreiben:
A = 1
B = 0
E_Byte = S_Byte
Gruß, Michael
He Sauerbruch,
neee, so war das eigentlich nicht gedacht. Mal etwas ausschweifend.....
die einzelnen Bits , 24 an der Zahl, müssen in 3 Byte kopiert werden. Diese 3 Byte will ich dann in einem RTC DS1307 speichern. Habe ich ein Stromausfall, kann ich danach die 3 Byte wieder aus dem s-ram vom DS 1307 holen und dann müssen die 3 Byte wieder auf die Bits aufgeteilt werden. So weiß das Programm wie der letzte Stand war.
Hmmm wie geht das nur?
3 Speicherbyte dimensionieren und dann die Bits so einbauen:
Speicher1 = Speicher1 + Bit1 * 1
Speicher1 = Speicher1 + Bit2 * 2
.
.
Speicher3 = Speicher3 + Bit24 * 8
Muss man nur noch ne vernünftige Routine zu schreiben, jedoch sollte
das vom Prinzip her gehen und man hat dann jeweils ein niedriges,
mittleres und hohes Byte. VG Micha
Oder die 24 Bit hintereinander dimmen und dann drei Bytes als Overlay drüber, falls du die auch komplett auslesen musst.
Die @Stefan_Z - Methode könnte man so machen:
Es muss aber garnicht so geschlossen hintereinander gedimmt werden.Code:Dim Bit1_1 As Bit Dim Bit1_2 As Bit Dim Bit1_3 As Bit Dim Bit1_4 As Bit Dim Bit1_5 As Bit Dim Bit1_6 As Bit Dim Bit1_7 As Bit Dim Bit1_8 As Bit Dim Bit2_1 As Bit Dim Bit2_2 As Bit Dim Bit2_3 As Bit Dim Bit2_4 As Bit Dim Bit2_5 As Bit Dim Bit2_6 As Bit Dim Bit2_7 As Bit Dim Bit2_8 As Bit Dim Bit3_1 As Bit Dim Bit3_2 As Bit Dim Bit3_3 As Bit Dim Bit3_4 As Bit Dim Bit3_5 As Bit Dim Bit3_6 As Bit Dim Bit3_7 As Bit Dim Bit3_8 As Bit Dim Byte1 As Byte At Bit1_1 Overlay Dim Byte2 As Byte At Bit2_1 Overlay Dim Byte3 As Byte At Bit3_1 Overlay
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
@Richard: So bescheuert ist Bascom auch wieder nicht.
Er reserviert ein Byte und stellt 8 Bit-dims rein, dann fängt er das nächste Byte an
Auszug bascom-report
Code:ERR Bit 0006 6 BIT1_1 Bit 0060 96 BIT1_2 Bit 0060 96 BIT1_3 Bit 0060 96 BIT1_4 Bit 0060 96 BIT1_5 Bit 0060 96 BIT1_6 Bit 0060 96 BIT1_7 Bit 0060 96 BIT1_8 Bit 0060 96 BIT2_1 Bit 0061 97 BIT2_2 Bit 0061 97 BIT2_3 Bit 0061 97 BIT2_4 Bit 0061 97 BIT2_5 Bit 0061 97 BIT2_6 Bit 0061 97 BIT2_7 Bit 0061 97 ---etc---
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo,
PicNick ist mal wieder mein Held! So kann man es natürlich auch machen,
obwohl ich habe es gestern schon so in der Art probiert.Dim Bit1_1 As Bit
Dim Bit1_2 As Bit
Dim Bit1_3 As Bit
Dim Bit1_4 As Bit
Dim Bit1_5 As Bit
Dim Bit1_6 As Bit
Dim Bit1_7 As Bit
Dim Bit1_8 As Bit
Dim Bit2_1 As Bit
Dim Bit2_2 As Bit
Dim Bit2_3 As Bit
Dim Bit2_4 As Bit
Dim Bit2_5 As Bit
Dim Bit2_6 As Bit
Dim Bit2_7 As Bit
Dim Bit2_8 As Bit
Dim Bit3_1 As Bit
Dim Bit3_2 As Bit
Dim Bit3_3 As Bit
Dim Bit3_4 As Bit
Dim Bit3_5 As Bit
Dim Bit3_6 As Bit
Dim Bit3_7 As Bit
Dim Bit3_8 As Bit
Dim Byte1 As Byte At Bit1_1 Overlay
Dim Byte2 As Byte At Bit2_1 Overlay
Dim Byte3 As Byte At Bit3_1 Overlay
Und nun weiß ich auch wo mein Fehler lag:
ich hatte zu erst "Dim Byte1 As Byte At Bit1_1 Overlay " und dann die Bits dimensioniert und bekam somit eine Fehlermeldung. Ich hätte das Overlay am Schluss machen sollen
Aber hier noch eine weitere Möglichkeit, die mir eben noch eingefallen ist:
Ok... dann kann es nun schön weiter gehen im Text!Code:Dim Hd As Byte Bit1 Alias Hd.1
Danke Euch allen
Lesezeichen