- LiTime Speicher und Akkus         
Ergebnis 1 bis 5 von 5

Thema: frage zu Variablen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.08.2009
    Ort
    SFB
    Beiträge
    60

    frage zu Variablen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo.

    Habe zwei Variablen und brauche von der einen die 8Bits und von der anderen nur ein bit und zwar das erste, Wie bekomme ich die zur einer Variablen mit neun bits?

    Versteht ihr mich?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628

    Re: frage zu Variablen

    Zitat Zitat von Cybererror
    Hallo.

    Habe zwei Variablen und brauche von der einen die 8Bits und von der anderen nur ein bit und zwar das erste, Wie bekomme ich die zur einer Variablen mit neun bits?

    Versteht ihr mich?
    Eine Variable mit neun Bits? So ganz verstehen tu ich das nicht, ehrlich gesagt.

    Für was soll das Ganze den sein?

    Grüße
    Thomas

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    03.08.2009
    Ort
    SFB
    Beiträge
    60
    für Temperatur Messung, es ist zwar nur der wert für ,5
    weiß aber nicht wie ich ihn dazu rechne.
    lese es über I2C aus erst datenfeld mir 8 bit und beim zweiten datenfeld brauche ich nur das erste bit (was halt über die ,5 Grad aussagt.)

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    34
    Beiträge
    607
    Wenn du das in der Festpunktdarstellungn speichern möchtest (was du anscheinend vor hast), dann multiplizierst du die 8-Bit Variable mit 2 (oder machst einen logischen Schift nach links (<<)) und addierst das Bit aus der zweiten Variable dazu.
    Musst halt drauf achten, an welcher Stelle das Bit in der zweiten Variable steht... wenns an erster Stelle steht (bei der 2^0 Stelle), dann kannst du einfach die ganze Variable dazuaddieren, ansonsten musst du dieses Bit eben dahin schieben.
    Oder du machst es mit einer abfrage: if(Var2 > 0) then Var1 = Var1 + 1
    Nicht vergessen, dass die entstehende variable in einer 16-bit Variable gespeichert werden muss.

    Hoffe es hat dir geholfen
    Gruß, Yaro

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    49
    Beiträge
    2.253
    9-bit Byte gibts zubächstmal nicht ... mal abgesehen von UART,
    ergo wird die nächst größere Stufe ein Word (16 Bit) fällig.
    wenn du nur ein Bit eines Bytes auswerten willt kannst du das
    entweder direkt ansprechen über bytevariable.x oder über
    Maskierung extrahieren

    bytevariable = bytevariable AND &B00000001

    wenn du zwei bytes zusammenfügen willst kannst du das
    über Makeint oder am Schnellsten über Overlayvariable

    dim wordvariable as word at &ha0
    dim lowbyte as byte at &ha0 overlay
    dim highbyte as byte at &ha1 overlay
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Berechtigungen

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

LiTime Speicher und Akkus