- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: dimensionierte Bits in einem Byte speichern

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381

    dimensionierte Bits in einem Byte speichern

    Anzeige

    E-Bike
    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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    ...vielleicht so?

    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
    Oder seh´ ich den Wald vor lauter Bäumen nicht? ...

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo mat-sche,

    die Hilfe von Bascom verbietet nicht "Dim A As Eram Bit" zu schreiben.

    nun will ich diese Bits in einem Byte speichern und dieses dann im EEProm hinterlegen.
    Dim E_byte as Eram Byte
    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

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    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?

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Kehnert
    Beiträge
    1.159
    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

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Oder die 24 Bit hintereinander dimmen und dann drei Bytes als Overlay drüber, falls du die auch komplett auslesen musst.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Die @Stefan_Z - Methode könnte man so machen:
    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
    Es muss aber garnicht so geschlossen hintereinander gedimmt werden.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555

    Re: dimensionierte Bits in einem Byte speichern

    Zitat Zitat von mat-sche
    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
    Irgendwo in der Bascom Hilfe...........

    Für jedes Bit belegt Bascom (intern) ein Komplettes Byte. Wenn also 3 Bit Deklariert werden, belegt Bascom dafür 3 Byte, " wenn ich das richtig (wo?) gelesen habe".

    Gruß Richard

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    @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.

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    Hallo,

    PicNick ist mal wieder mein Held! So kann man es natürlich auch machen,
    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
    obwohl ich habe es gestern schon so in der Art probiert.
    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:

    Code:
    Dim Hd As Byte 
    Bit1 Alias Hd.1
    Ok... dann kann es nun schön weiter gehen im Text!

    Danke Euch allen

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress