- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 20

Thema: Universal LCD Menue

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    70
    Beiträge
    348
    Hallo fredred
    hab ich da was überlesen. "In meinen bescheiden Code mache ich es ...", sagst du. Würde es gern mal anschauen.
    achim

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo Achim,

    nichst überlesen! Habe ja kein Code eingestellt. Sollte doch nur ein Hinweis sein. Natürlich wenn Interesse, werde ich meine Variante zu Verfügung stellen.
    Vorab ein Schnipsel:

    '**** Variable für Anzeigeauswahl ****
    Dim Lcd_aktualisieren As Byte 'Zähler für LCD-Anzeigen
    Gosub Anzeigen
    '************ Bereich für LCD -Anzeigen ***************************
    Anzeigen:

    '****** Startfenster *******
    If Lcd_aktualisieren = 255 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd Status ; " ist Startfenster "
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd " Hallo Achim "
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " Datum " ; Date$ ; " "
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " Zeit " ; Time$ ; " "
    End If

    '***************************

    'hier zur LCD - Datenanzeige für Funk
    If Lcd_aktualisieren = 254 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd Status ; " D0 | D1 | D2 "
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd "_ " ; D0 ; " _|_ " ; D1 ; " _|_ " ; D2 ; "_ "
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " Temp1: " ; Temper1 ; " ßC "
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " Temp2: " ; Temper2 ; " ßC "
    End If
    '***************************
    'hier zur LCD - Anzeige für Poti
    If Lcd_aktualisieren = 253 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd Status ; " Poti Anzeige "
    Locate 2 , 2 'Cursor auf 2 Zeile, 2 Spalte
    Lcd " *Werte in Volt* "
    Locate 3 , 2 'Cursor auf 3 Zeile, 2 Spalte
    Lcd " Poti0 = " ; W0 ; " "
    Locate 4 , 2 'Cursor auf 4 Zeile, 2 Spalte
    Lcd " Poti1 = " ; W1 ; " "
    End If
    '***************************

    'hier Anzeige Touch-Werte
    If Lcd_aktualisieren = 252 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd " Touch Werte lesen "
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd " Achsen testen "
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " X = " ; X ; " " 'die leer Zeichen löschen den Rest
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " Y = " ; Y ; " "
    End If
    '***************************

    'hier Anzeige Touch-Panel
    If Lcd_aktualisieren = 0 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd " Touch Test "
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd " ************* "
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " * ENTER * " 'die leer Zeichen löschen den Rest
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " ************* "
    Wait 1 'für Test anzeigen 3 Sekunden
    End If
    '***************************

    'hier Anzeige Beispiel Temperaturreglung
    If Lcd_aktualisieren = 2 Then
    Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
    Lcd " Temperaturwarnung "
    Locate 2 , 1 'Cursor auf 2 Zeile, 1 Spalte
    Lcd " T1= 3 " ; "ßC" ; " zu hoch "
    Locate 3 , 1 'Cursor auf 3 Zeile, 1 Spalte
    Lcd " Temp1: " ; Tempfehler ; " ßC "
    Locate 4 , 1 'Cursor auf 4 Zeile, 1 Spalte
    Lcd " Temp2: " ; Temper2 ; " ßC "
    Wait 5
    End If
    '***************************
    usw.
    Gruß
    Fred

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    70
    Beiträge
    348
    Hab da doch was überlesen, ist Basic und ich nutze C. Schade
    Danke
    achim

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    04.04.2009
    Ort
    Sangerhausen/OT Grillenberg
    Alter
    59
    Beiträge
    53
    Hallo Fred,

    kannst Du bitte Deinen ganzen Code reinstellen?

    Gruß Andreas

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo Andreas,

    kannst Du bitte Deinen ganzen Code reinstellen?

    könnte ich. Passt aber nicht mehr zum Thema. Projekt ist eine umfangreiche MSR- Haussteuerung auch mit Funkübertragung (alles Eigenbau) Wenn immer noch Interesse schicke ich den Code(bas 938 Zeilen) als PN.

    Mit freundlichen Grüßen
    Fred

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.12.2005
    Ort
    @FFM
    Alter
    48
    Beiträge
    408
    Hallo Fred
    .. leider kann ich die Wiederverwendbarkeit deines Codes nicht nachvollziehen.
    Sinn dieser Routine war die Generierung einer Menustruktur nur durch Konfiguration des Dataset am Ende des Codes zu schaffen.
    was du in deinem Programm machst ist je nach Ablauf des Programms Variablen aufs Display zu schreiben ...
    wie kann man so einen Universell gesteuerten Menueablauf generieren ?
    Mein Code soll die Reduktion von mehrfach verzweigten Menuestrukturen bewirken.
    Du verwendest pro Menuepunkt 4 locate und 4 lcd befehle das mal die Anzahl von Menuepunkten frisst ordentlich Speicherplatz.
    Ich verwende insgesamt nur 8 LCD Befehle für die Menueanzeige im Gesamten Programm unabhängig wieviel Menueeinträge vorhanden sind.
    Du musst wissen als ich das Programm vor ca 10 Jahren geschrieben habe war Speicherplatz im ATmega stark begrenzt
    Aber trozdem grossen Respekt an dich, daß du dich in deinem Alter noch an an eine MSR Steuerung mit 8-bit Prozessor im
    Eigenbau heran wagst .

    Gruß Daniel
    Geändert von molleonair (29.10.2015 um 17:46 Uhr)

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.11.2013
    Ort
    Home
    Beiträge
    213
    Hallo Daniel,

    hast völlig Recht. Die Taster haben mir nicht gefallen.
    Im meiner MSR Steuerung teilen sich ein Atmega 644P und einen 128 die Arbeit. Die Parameter, von zu, tausche ich mit UART (TTL) aus. Somit war und ist Speicherplatz zusparen nicht das Wichtigste für mich. Nur die Anzeige sollte immer das gleiche Format haben und nicht „flackern“. Anfänglich hatte ich es mit dem „blödem“ CLS- Befehl gemacht.

    Zitat:
    Mein Code soll die Reduktion von mehrfach verzweigten Menuestrukturen bewirken.
    Zitat Ende

    Wie gesagt deine Lösung finde ich Gut, sind aber andere Verhältnisse.
    Beispiel: Wird ein Hausalarm ausgelöst, springe in Anzeige WO. Kommt Funkmeldung PV- Akku wird nicht mehr geladen springe in Anzeige PV. Möchte ja wissen ob „Susi“ nicht mehr genug „Kraft“ hat oder es sich um eine Störung handelt.
    Kommt eine Meldung Lastprofilspeiche für Strom- Gaszäher ist fast voll springe in Anzeige Daten sichern usw.

    Wichtig war für mich die Starteinstellung. Display zeig DCF77 an, in der letzen Zeile wird angezeigt, wo die Controller, gerate „herum Tadeln“. In allen Sub’s kann ich ein Status setzen (erst wenn sich Variable X ändert auch in %) nur dann in passende Anzeige springen.

    Displayanzeige hat ja durch Klartext plus Variable in Zeilen immer eine andere Länge.
    Soll halt nur „Schmuck“ aussehen und meine liebe Frau soll es auch deuten können für eventuelle Reaktionen.

    Vielen Danke für Info der alte Mann
    Fred

    Beschwerden über Schreibfehler, fehlende Buchstaben oder Leerzeichen bitte an meine Tastatur richten.


Berechtigungen

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

12V Akku bauen