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,
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
...
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
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
...
DANKE!!!! DENKFEHLER
das muss natürlich GOSUB sein!!!
Tobias
...
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
...
Hallo TobiasBlome,
es reicht, das "Initlcd" einmalig vor der Hauptschleife auszuführen.
Gruß, Michael
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
...
also es geht aber es tauchen manchmal falsche Zeichen in verschiedenen Zeilen auf.
...
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
...
Lesezeichen