Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD 4*27 Zeichen also > 80 Zeichen - 2 Controller
TobiasBlome
21.10.2008, 17:11
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
$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
TobiasBlome
21.10.2008, 18:03
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
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
TobiasBlome
21.10.2008, 18:08
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...
'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
TobiasBlome
21.10.2008, 18:11
DANKE!!!! DENKFEHLER
das muss natürlich GOSUB sein!!! :oops:
Tobias
TobiasBlome
21.10.2008, 18:13
es funktioniert, obwohl das return auch fehlte.... Also:
'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
Hallo TobiasBlome,
es reicht, das "Initlcd" einmalig vor der Hauptschleife auszuführen.
Gruß, Michael
TobiasBlome
21.10.2008, 20:42
so funktioniert es bei mir nicht:
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
TobiasBlome
21.10.2008, 20:45
also es geht aber es tauchen manchmal falsche Zeichen in verschiedenen Zeilen auf.
TobiasBlome
21.10.2008, 20:53
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
Hallo TobiasBlome,
es reicht, das "Initlcd" einmalig und vor der Hauptschleife für jede Displayhälfte auszuführen.
Gruß, Michael
TobiasBlome
21.10.2008, 22:10
also so oder?
Anzeige:
Initlcd
'Cursor Off
___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
Hallo TobiasBlome,
es reicht, das "Initlcd" einmalig und vor der Hauptschleife für jede Displayhälfte auszuführen.
Vielleicht sollte ich gleich den ganzen Text rot einfärben, liest du ihn dann? ;)
Programmstart
___lcdno = 0
Initlcd
___lcdno = 1
Initlcd
Do
Programmtext
Gosub Anzeige
Loop
End
Anzeige:
___lcdno = 0
Lcd "erste Hälfte"
___lcdno = 1
Lcd "zweite Hälfte"
Return
Gruß, Michael
TobiasBlome
22.10.2008, 16:53
Hallo Michael,
vielen dank für den Programmcode - jetzt habe sogar ich den code verstanden \:D/
ich werde ihn gleich mal umsetzen.
Danke - Tobias :-)
TobiasBlome
23.10.2008, 16:05
Hallo Michael,
konnte das Programm leider erst heute testen....
funktioniert bestens - noch mal vielen Dank ;-)
Tobias
http://www.Gento.de/affesagtnein.gif
Voll Interesse verfolgte ich das biologische sparmonkel zum zigten male.
Gento
thewulf00
24.10.2008, 09:41
@Gento: Die Message Deines Posts entzieht sich mir irgendwie...
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.