-         

Ergebnis 1 bis 9 von 9

Thema: array verlauf auf lcd..

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.03.2006
    Beiträge
    11

    array verlauf auf lcd..

    Anzeige

    Hi da!

    Ich hab ein array von 1 - 24 programmiert, dieses soll mir dann 24 relais zur lautstärkensteuerung einer endstufe dienen.
    Da ich gerne auch das aktuelle volumen auf einem lcd display anzeigen würde also einfach den zustand des arrays also 1-24 stufen.

    Haut auch fast hin bis auf das das sobald ich in den 2stellligen berreich komme also ab 10 der wert am display beim herunterzählen nicht mehr zu einem einstelligen wird also folglich für stufe 1 steht dann 10 für 2 steht 20 usw. ab 10 passt es dann wieder.

    Was muss ich tun damit beim herunterzählen die vorangegangene zahl gelöscht und wieder überschrieben wird und wie kann ich es schaffen das die zahl 1 rechtsbündig( also 01 aber die null will ich nicht umbedingt sichtbar haben aber ab 10 soll der eigntliche 0er mit 1 ersetzt werden und ab 20 mit 2)?

    hier der code den ich zum übertragen auf das display benutze:

    Locate 1 , 10
    Lcd "VOL:" ; Str(x);

    Das x ist mein array von 1 -24. Umgewandelt hab ich es doch richtig von integer zu string?

    Danke schon mal herzlich!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    15.03.2006
    Beiträge
    11
    Na mag mir den keiner einen tipp geben

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    servus
    also das lcd kannst du mit "cls" löschen. dann sind deine alten zahlen weg. das dauert aber ein wenig also so mind 10ms dafür einplanen.
    um einen wert mit lcd auszugeben musst du ihn nicht in nen string konvertierten das geht auch so.

    cls
    Locate 1 , 10
    Lcd "VOL: " ,x(aktuell)

    zur formatierung deines arrays schau dir mal die befehle fusing oder format an.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    oder du hängst nach deiner Zahl n Leerzeichen an

    Locate 1 , 10
    Lcd "VOL: " ;x(aktuell);" "
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.03.2006
    Beiträge
    11
    He danke!

    Also das mit cls geht natürlich aber dann fängt das lcd zu blinken an,wegen der schleife.

    Das mit dem leerzeichen haut zufriedenstellend hin , ab 10 abwärts ist dann wirklich nur 9 ..usw. zu lesen, nur hupft die einstellige 9 auf den platz des zuvor angezeigten 1 von der 10, also ich würde mich ja schon damit zufrieden geben aber wie kann ich es schaffen das alle zahlen rechts anfangen und nicht links?

    Fusing und format hab ich mir auch angeschaut aber damit bin ich nicht weiter gekommen.

    Danke.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    34
    Beiträge
    979
    du könntest es z.b. mit einer abfrage auf kleiner als 10 machen und einfach ein leerzeichen davor setzen:

    if x<10 then Lcd "VOL: " ;" ";x(aktuell)
    if x>=10 then Lcd "VOL: " ;x(aktuell)

    gruss bluesmash

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.11.2005
    Ort
    Erlangen
    Alter
    35
    Beiträge
    77
    dann mach doch nen waitms 100 nach dem cls rein dann sollte es nicht so sehr blicken und 10 werte die sek dürfte auch genügen...
    oder?

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Fusing und format hab ich mir auch angeschaut aber damit bin ich nicht weiter gekommen.
    ganz einfach
    Code:
    'Pseudocde:
    Dim S1 as string * 10  
    s1 = Str(x(aktuell))
    Lcd "VOL: "; Format(s1,"   ")       '3 Leerzeichen als Platzhalter
    waitms 100     'macht sich immer gut

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    15.03.2006
    Beiträge
    11
    Danke leute, so müsste das dann hinhauen! \/

Berechtigungen

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