- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: I2C - ein Buch mit 7 Siegeln :( [verbinden 2er Controller]

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hi,

    wieso denn so umständlich?
    Code:
    Function Mc_firmware() As Byte
    I2creceive &H82 , Mc_firmware
    End Function
    Gruß, Stefan

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2008
    Ort
    Siegen, Germany, Germany
    Beiträge
    441
    oh ja hmm das ging jetzt echt einfach... *g* vielen Dank
    habe da allerdings noch ein Problem und dann hast du mich sowas von glücklich gemacht *g*

    Ich weise der Var mc_firmware den Wert "1.02" zu mit:

    Code:
    const mc_firmware = "1.02"
    naja aber das mag Bascom aus irgendwelchen Gründen nicht, bekomme den Fehler: "Error 64 - expected".

    Wenn ich die Var als integer deklariere dann geht alles, aber dann kann ich nur ganze Zahlen senden.

    *verwirrt ist*

    LG
    Daniel

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hallo Daniel,

    das ist somit ja als String definiert. Den müsstest du zerlegen und die Bytes einzeln schicken.
    Ich würde das einfach als
    Code:
    const mc_firmware = 102
    und somit als Byte definieren und später zur Anzeige den Punkt reinsetzen.

    Ich mache das bei meinen Anwendungen (Master) so:

    Code:
    Dim Lcdstring As String * 5
    Dim Lcdarray(6) As Byte At Lcdstring Overlay
    
    Sub Showversion
        Lcd " SL-AQUARISTIK"
        Locate 2 , 1
        Lcdstring = Str(vers)
        Lcdarray(5) = Lcdarray(3) : Lcdarray(3) = Lcdarray(2)
        Lcdarray(2) = "." : Lcdarray(4) = "."
        Lcd "Pegel V." ; Lcdstring
        Wait 2
    End Sub
    Wenn du das Bytearray mittels Overlay auf den String legst, kannst du die einzelnen Zeichen verschieben wie du willst.
    Die Variable Vers wird dann auf dem LCD z. B. als 1.0.2 angezeigt.
    Gruß, Stefan

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.05.2007
    Beiträge
    202
    Hi,

    in deinem Fall könntest du das so schreiben:

    Code:
    Dim Lcdstring As String * 4
    Dim Lcdarray(5) As Byte At Lcdstring Overlay
    
    Sub Showversion
        Lcd " Mc_Firmware"
        Locate 2 , 1
        Lcdstring = Str(vers)
        Lcdarray(4) = Lcdarray(3) : Lcdarray(3) = Lcdarray(2)
        Lcdarray(2) = "." 
        Lcd "Vers. " ; Lcdstring
        Wait 2
    End Sub
    Gruß, Stefan

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests