- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 10

Thema: Bitfolge in einer Variablen speichern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Es gibt in Bascom keine Bit-Variablen.
    Das ist nicht ganz richtig, wie den Bascom Language-Fundamentals zu entnehmen ist:

    Data Types
    Every variable in Bascom has a data type that determines what can be stored in the variable. The next section summarizes the elementary data types.

    Elementary Data Types
    Bit (1/8 byte). A bit can hold only the value 0 or 1. A group of 8 bits is called a byte.

    Byte (1 byte). Bytes are stores as unsigned 8-bit binary numbers ranging in value from 0 to 255.

    Integer (two bytes). Integers are stored as signed sixteen-bit binary numbers ranging in value from -32,768 to +32,767.

    (usw...)

    Die Lösung von Radbruch zum Erfassen des aktuellen Taster-Status hat (mit Verlaub) den Fallstrick, dass zu der If-Abfrage in diesem Fall auch eine Else-Anweisung gehört:
    Wenn z.B. PINC.0 Low ist, wird zwar das Bit status_taster.0 auf 1 gesetzt. Ist der Eingang aber irgendwann wieder High, wird die If-Anweisung einfach übersprungen, aber das Bit bleibt gesetzt! Man müsste es also mindestens mal so schreiben:


    Code:
    If PINC.0 = 0 then status_taster.0 = 1 else status_taster.0 = 0
    If PINC.1 = 0 then status_taster.1 = 1 else status_taster.1 = 0
    ...
    Einfacher wäre es natürlich so:

    Code:
    status_taster.0 = NOT PINC.0
    status_taster.1 = NOT PINC.1
    ...
    Und noch einfacher wäre es, wenn die 16 Taster an zwei "ganzen" Ports liegen (also z.B. PINC.0 - PINC.7 und PIND.0 - PIND.7):

    Code:
    Dim status_taster as Word
    
    status_taster = PINC
    shift status_taster, left, 8
    status_taster = status_taster + PIND
    Dann werde ich mich mal nach einer anderen Lösung umsehen
    Vielleicht sind das ja ein paar Denkanstöße

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Die Lösung von Radbruch zum Erfassen des aktuellen Taster-Status hat (mit Verlaub) den Fallstrick, dass zu der If-Abfrage in diesem Fall auch eine Else-Anweisung gehört:
    Das ersetzt die else-Zweige:

    Status_taster = 0
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Das ersetzt die else-Zweige:

    Status_taster = 0
    Okay - 1:0 für Dich...

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    @Sauerbruch

    dort wird nur erklärt welche Daten-Typen es gibt
    Dim A As Bit >>>>>1BYTE ist weg

    MfG

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von Rone Beitrag anzeigen
    Dim A As Bit >>>>>1BYTE ist weg
    Hallo Rone,
    das liegt halt daran, dass der Speicher in Bytes organisiert ist und hat nichts mit Bascom zu tun.
    Der Compiler merkt sich aber, dass von dem benutzten Byte noch 7 Bit frei sind. Kommt dann ein
    Dim B As Bit
    wird das zweite Bit desselben Bytes verwendet.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo for_ro,
    kann Dir voll und ganz zustimmen. Hätte es nur selber ausprobieren müssen.
    Danke nochmal für die Richtigstellung.

    MfG

Ähnliche Themen

  1. Stellen (Einer, Zehner, ...) einer Zahl seperat speichern
    Von HF SHOOTER im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 06.11.2007, 02:04
  2. Variablen im Flash speichern
    Von Brantiko im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 19.03.2007, 13:28
  3. at89s52 - Variablen dauerhaft speichern
    Von Karl Weber im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 03.07.2006, 10:48
  4. Variablen in SRAM speichern?
    Von BASTIUniversal im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 26.01.2006, 18:17
  5. Variablen mit Bascom speichern
    Von Murus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 10.09.2005, 23:24

Berechtigungen

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

12V Akku bauen