- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: LCD 4*27 Zeichen also > 80 Zeichen - 2 Controller

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627

    LCD 4*27 Zeichen also > 80 Zeichen - 2 Controller

    Anzeige

    E-Bike
    Hallo,
    ich habe ein LCD mit 2 Controllern.
    Wie bekomme ich das LCD angesteuert? Im Netz habe ich einen Code gefunden, aber ich weiß nicht, wie ich den als Schleife einbinden kann:

    Der Code läuft einmal durch und das Ergebnis ist auf dem LCD.

    Was muss ich machen damit die Variable auf dem LCD hochgezählt wird?
    mit einem "GoTo" Verweis hab ich es noch nicht geschafft...

    Vielen Dank, Tobias

    Code:
    $regfile = "m32def.dat"                                     'AT-Mega32
    $crystal = 1000000                                          'Quarz: 1 MHz
    
    Dim X As Single                                             'Variable zum hochzählen
    
    Dim ___lcdno As Bit
    
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 , E2 = Portb.6
    
    Config Lcd = 40 * 4
    
    
    
     ___lcdno = 0                                               'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "1estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd "2estesttesttesttesttesttest"
    
    
     ___lcdno = 1                                               'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "3estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd X                                                      '"4estesttesttesttesttesttest"
    
    
    Do
    
    Incr X
    wait 1
    
    'goto Anzeige 'funktioniert aber bei mir nicht....
    
    Loop
    
    End
    ...

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    noch eine andere Frage: wo bekommt man .LBX Dateien her? ich habe einige bei meiner Bascom Installation aber mir fehlt z.B. die Servo.LBX. gibt es da eine download seite?

    Danke, Tobias
    ...

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo TobiasBlome,

    es spricht nichts dagegen, die Auswahl der Displayhälfte, also
    ___lcdno = 1
    und die Position und den Inhalt, also
    Locate und Lcd X
    innerhalb der Do-Loop Schleife zu schreiben.

    Gruß, Michael

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    oh - das hatte ich noch gar nicht getestet...aber

    ich wollte den µC nicht ständig belasten und hatte es deshalb mit einer goto schleife versuch und das geht nicht...

    Code:
    'LCD mit 2 Controllern
    
    $regfile = "m32def.dat"                                     'AT-Mega32
    $crystal = 1000000                                          'Quarz: 1 MHz
    
    Dim X As Word                                               'Variable zum hochzählen
    
    Dim ___lcdno As Bit
    
    'Config Lcdpin = Pin , E = Portc.4 , E2 = Portc.5 , Rs = Portb.5 , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 , E2 = Portb.6
    
    Config Lcd = 40 * 4
    '_______________________________________________________________
    Do
    
    
    Incr X
    Goto Anzeige
    
    Wait 1
    
    
    Loop
    
    '_______________________________________________________________
    
    End
    
    
    
    
    
    Anzeige:
    
     ___lcdno = 0                                               'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "1estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd "2estesttesttesttesttesttest"
    
    
     ___lcdno = 1                                               'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "3estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd X
    ...

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    DANKE!!!! DENKFEHLER

    das muss natürlich GOSUB sein!!!

    Tobias
    ...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    es funktioniert, obwohl das return auch fehlte.... Also:

    Code:
    'LCD mit 2 Controllern
    
    $regfile = "m32def.dat"                                     'AT-Mega32
    $crystal = 1000000                                          'Quarz: 1 MHz
    
    Dim X As Word                                               'Variable zum hochzählen
    
    Dim ___lcdno As Bit
    
    'Config Lcdpin = Pin , E = Portc.4 , E2 = Portc.5 , Rs = Portb.5 , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4 , E2 = Portb.6
    
    Config Lcd = 40 * 4
    '_______________________________________________________________
    Do
    
    
    Incr X
    Gosub Anzeige
    
    Wait 1
    
    
    Loop
    
    '_______________________________________________________________
    
    End
    
    
    
    
    
    Anzeige:
    
     ___lcdno = 0                                               'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "1estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd "2estesttesttesttesttesttest"
    
    
     ___lcdno = 1                                               'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
     Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "3estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd X                                                      '"4estesttesttesttesttesttest"
    
    return
    ...

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo TobiasBlome,

    es reicht, das "Initlcd" einmalig vor der Hauptschleife auszuführen.

    Gruß, Michael

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    so funktioniert es bei mir nicht:

    Code:
    Anzeige:
    Initlcd
    
     ___lcdno = 0                                               'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
     'Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "1estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd "2estesttesttesttesttesttest"
    
    
     ___lcdno = 1                                               'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
     'Initlcd
     Cursor Off
     Cls
     Locate 1 , 1
     Lcd "3estesttesttesttesttesttest"
     Locate 2 , 1
     Lcd X                                                      '"4estesttesttesttesttesttest"
    
    return
    ...

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    also es geht aber es tauchen manchmal falsche Zeichen in verschiedenen Zeilen auf.
    ...

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Hallo,
    ich habe nun das "wait 1" rausgenommen und einen 14,7456MHz Quarz angelötet (mit Kondensatoren). Im Programm und in den Fusebits hab ich die Einstellungen geändert: warum schafft der µC nur ca. 1ne Zahl pro Sekunde zu addieren / hochzuzählen?

    Tobias
    ...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress