Ergebnis 1 bis 7 von 7

Thema: Ausgabe auf LCD-Zeile funktioniert nicht richtig.

  1. #1
    Kabelträger
    Registriert seit
    20.12.2016
    Alter
    73
    Beiträge
    18

    Ausgabe auf LCD-Zeile funktioniert nicht richtig.

    Was übersehe ich hier?

    bytincr kann 0 = keine Tätigkeit; 1 = Position nach links; 2 = Position nach rechts
    enc_k ist ein Kontakt
    curpos ist die Cursorposition

    wenn enc_k = 0 dann ist der Cursor sichtbar und wird verschoben
    wenn enc_k = 1 dann wird der Wert an der Cursorstelle verändert aber der Cursor steht nicht mehr richtig, die Kontrollausgabe von curpos ist = 0 und anderes undefiniertes passiert






    Do
    Disable timer0 'Stop Timer0 for display
    if enc_k = 0 then


    Select Case bytIncr 'Set/show TRX freq.
    Case 2
    if curpos > 1 then 'Encoder incremented
    lngStep = lngStep * 10
    decr curpos


    locate 1 , curpos
    endif
    Case 1
    if curpos < 10 then 'Encoder decremented
    lngStep = lngStep / 10
    incr curpos
    locate 1 , curpos
    endif
    End Select


    else
    Select Case bytIncr 'Set/show TRX freq.
    Case 2 'Encoder incremented
    lngFreq = lngFreq + lngStep
    Case 1 'Encoder decremented
    lngFreq = lngFreq - lngStep


    End Select


    If bytIncr > 0 Then 'Freq. was changed
    strFreq = Str(lngFreq)
    strFreq = Format(strFreq , "0000000000")


    locate 1 , 12
    strstep = str(curpos)
    lcd strstep
    locate 1 , 1
    LCD strFreq


    locate 1 , curpos


    'Reset increment flag
    End If


    endif
    bytIncr = 0
    Enable Timer0 'Restart Timer0






    Loop
    End
    Angehängte Dateien Angehängte Dateien
    Geändert von fraureuther (27.12.2016 um 13:34 Uhr)

  2. #2
    Kabelträger
    Registriert seit
    20.12.2016
    Alter
    73
    Beiträge
    18
    Ich habe gefunden, woran es liegt, dass das Programm nicht funktioniert, ohne zu begreifen, warum.
    Nach der Ausführung des Befehls strfreq = format(strfreq , "0000000000") wird die Variable curpos auf 0 gesetzt. Wieso?
    MfG
    Uhland

  3. #3
    Spaghetti-Coder Avatar von Basti
    Registriert seit
    10.11.2016
    Beiträge
    109
    Hallo Uhland,
    die Stringvariable strfreq hast du für 9 Zeichen (+1 autom. für Stringende) definiert, dein Format schreibt aber 10 Zeichen + Stringende. Damit wird die nachfolgende Variable überschrieben.
    Der Compiler macht diese Art der Überprüfung nicht, nur wenn du direkt strfreq="0123456789" setzt, gibt er eine Fehlermedung aus.

  4. #4
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    455
    fusing ist der bessere befehl und dann auf single umstellen das komma bekommst du
    mit int weg.
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  5. #5
    Spaghetti-Coder Avatar von Basti
    Registriert seit
    10.11.2016
    Beiträge
    109
    Hallo Don,
    warum soll Fusing der "bessere" Befehl sein? Bezweifelst du, dass MCS Format richtig programmiert hat?
    Format funktioniert mit Strings, während Fusing mit Singles arbeitet.
    Er hat eine Ganzzahl Variable. Die soll er deiner Meinung nach in eine Single umwandeln um diese dann in einen String zu wandeln.
    Wozu?

  6. #6
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    455
    Alle Wege führen nach Rom.
    Geändert von DON (28.12.2016 um 12:10 Uhr)
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  7. #7
    Kabelträger
    Registriert seit
    20.12.2016
    Alter
    73
    Beiträge
    18
    Danke für die Antworten!
    Ich hatte mir schon sowas gedacht, nur habe ich nicht begriffen, wie das zusammenhängt, nun weis ich es.
    Jetzt funktioniert alles und ich kann zum nächsten Part schreiten.

    MfG

    Uhland

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 18.01.2017, 12:50
  2. MCS geht nicht
    Von hanne im Forum Bascom
    Antworten: 5
    Letzter Beitrag: 18.11.2016, 15:34

Lesezeichen

Lesezeichen

Berechtigungen

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