Hallo, Ich sollte dringend mal jemand haben der mir mal ein kleines Beispiel zeigen kann, wie ich mit Bascom ein Grafik-LCD ansteuer. Ich hab nun schon soviel gelesen und probiert aber nichts hat funktioniert. So, ich hab Bascom 1.11.7.4, STK200, nen mega32, und an 128x64pix Grafik LCD drann hängen. Ich weiß von dem Grafik-LCD das es wie folgt am mega hängt. PA3 - /WR PA4 - /RD PA5 - /CE PA6 - /CTRL(1)/DATA(0) PA7 - /Reset PC0 - DB7 PC1 - DB6 ... PC7 - DB0 ^^ Hat mir da irgend jemand an schönes beispiel? oder könnte irgend jemand mir kurz ein "Hello world" schreiben? Ich hab leider noch keine erfahrung mit bascom, von daher würde das mein einstieg mal deutlich vereinfachen. ;-) DANKE schonmal im vorraus Xaero5
So mache ich es! 'LCD pin ' 1 GND GND '2 GND GND '3 +5V +5V '4 -9V Pin 5 Max 32 -C2 '5 /WR PORTC.0 '6 /RD PORTC.1 '7 /CE PORTC.2 '8 C/D PORTC.3 '9 RESET PORTC.4 '10-17 D0-D7 PORTD.0-7 '18 FS PORTC.5 '19 LEDK - '20 LEDA - $regfile = "m8def.dat" $crystal = 3686400 Dim X As Byte, Y As Byte Config Graphlcd = 128 * 64, Dataport = Portd, Controlport = Portc, Ce = 2, Cd = 3, Wr = 0, Rd = 1, Reset = 4, Fs = 5, Mode = 8 'mode = 8 ergibt 128 / 8 = 16 spalten Cls 'Display löschen Cursor Off 'Cursor aus '*********************************************************************** ******** '* Schreibt Text in Zeile 1-8 * '*********************************************************************** ******** Locate 1, 1: Lcd "Zeile 1" Locate 2, 1: Lcd "Zeile 2" Locate 3, 1: Lcd "Zeile 3" Locate 4, 1: Lcd "Zeile 4" Locate 5, 1: Lcd "Zeile 5" Locate 6, 1: Lcd "Zeile 6" Locate 7, 1: Lcd "Zeile 7" Locate 8, 1: Lcd "Zeile 8" Wait 5 '5 Sekunden warten Cls 'Display löschen '*********************************************************************** ******** '* Steuert alle Pixel des Displays an * '*********************************************************************** ******** For Y = 0 To 63 For X = 0 To 127 Pset X , Y , 255 ' setzt pixel Next X Next Y Wait 5 '5 Sekunden warten Cls 'Display löschen '*********************************************************************** ******** '* Zieht Linien * '*********************************************************************** ******** Line (0, 127)-(127, 0), 255 Line (0, 0)-(127, 0), 255 Line (0, 1)-(127, 1), 255 Line (0, 60)-(127, 60), 255 Line (0, 0)-(0, 63), 255 Line (127, 0)-(127, 63), 255 Wait 5 '5 Sekunden warten Cls 'Display löschen '*********************************************************************** ******** '* Zeichnet Kreise * '*********************************************************************** ******** For X = 1 To 10 Circle (20, 20), 20, 255 ' zeichnet kreis Wait 1 Circle (20, 20), 20, 0 'löscht kreis Wait 1 Next X End
Hast Du den Datenbus wirklich so angeschlossen? PC0 - DB7 PC1 - DB6 ... PC7 - DB0 Einfacher und schneller wäre es so: PC0 - DB0 PC1 - DB1 ... PC7 - DB7 Ich mache eigentlich nichts mit BASCOM, nur gelegentlich kleine Dinge, aber eine Bibliothek für ein T6963-LCD müßte enthalten sein. MfG Andi
Ach ja, hast Du JTAG deaktiviert? Wenn nicht, sind 4 Pins als I/O des PortC am Mega32 nicht zu gebrauchen. Muß man per Fuse-Bit abschalten (JTAGEN = 1 (unprogrammed)). MfG Andi
Also, ich hab das nun so mal probiert..... Das Display bleibt aber leer... :-( Config Graphlcd = 128 * 64 , Dataport = Portc , Controlport = Porta , Ce = 5 , Cd = 6 , Wr = 3 , Rd = 4 , Reset = 7 , Mode = 8 Cls Locate 1 , 1 Lcd "Hello World" End Denke mal das das daran lieg das der Dataport "invertiert" ist... also die Pins vertauscht... Wie dreh ich die? @ Andi_K: Was für ein Ding? ;-) Sorry, bin total neu in der materie. Grüßle Xaero5
Na JTAGEN. Werkseinstellung ist JTAG aktiviert. Mußt Du per Fuses deaktivieren (siehe oben). Aber informiere dich vorher in der Docu (Hilfe) zu Deiner Programmer-Software über das setzen der Fuse-Bits. Im Zweifelfall vorher die Fuse-Bits einlesen, JTAGEN auf 1 und schreiben. MfG Andi
Ach ja, noch mal zu Deiner Pin-Belegung des LCD-Datenports. Meintest Du das ernst mit PC0 = DB7 ... PC7 = DB0 ??? Bascom kann zwar die Bits tauschen (denke ich mal), aber kostet unnötig Rechenzeit. MfG Andi
lade dir die basocdemo runter und installiere diese, damit kannst du übersichtlich die fusebits einstellen. mfg pebisoft
die datenbits darfst du nicht vertauschen. db0 muss an pin0 usw. ausser du änderst die lib und compilierset diese neu und bindest die lib dann in bascom ein. ansonsten ist es erstmal in basocm unveränderlich vorgegeben. weil über die datenports auch einstellungsdaten gesendet werden. mfg pebisoft
Dann geht das nur bei Character-LCDs in BASCOM? Hatte mir mal eine Bascom-LIB angesehen und da war Bitweiser Einzelzugriff mit "SBI, SBIS und CBI" etc. oder so ähnlich. Klar, kostet nur unnötig Zeit. MfG Andi
also so eng darst du zeit nicht nehmen, ob du einmal sbi mher machst oder weniger. wichtig ist nur das timing was der controller verlangt. mfg pebisoft
Also... Programm sieht immernoch so aus... aber ich hab nun mal die datenpins gedreht... hatte die aus bequemlichkeit beim aufbau anders... jetzt passen die aber also PC0 = DB0 ... PC7 = DB7 was mir noch aufgefallen ist ist das ingo und in der hilfe von bascom ein FS pin deklariert wird... ich hab aber solch einen pin nicht... so... nun tut sich auch was auf dem display... aber es kommt kein "hello world" sonder nur wirre zeichen/symbole usw. Config Graphlcd = 128 * 64 , Dataport = Portc , Controlport = Porta , Ce = 5 , Cd = 6 , Wr = 3 , Rd = 4 , Reset = 7 , Mode = 8 Cls Locate 1 , 1 Lcd "Hello World" End ???? ratlos....
Wie schon gesagt, JTAG deaktivieren, ansosnten geht der PortC nur zur Hälfte, oder an Port D oder A (eigentlich blödsinn, wegen ADC) anschliessen! Auszug aus dem Mega32-PDF: "If the JTAG interface is left unconnected, the JTAGEN fuse should if possible be disabled. This to avoid static current at the TDO pin in the JTAG interface." MfG Andi
Hallo zusammen wie sieht das den mit Bitmaps und dem GraphikLCD aus? Kann ich eine Bitmap in einem Grafik Programm erstellen und diese quasie als Hintergrund für die Anzeige benutzen!? gruß avrler
hallo, fs musst du mit im programm angeben, brauchste aber nicht anklemmen, so sieht es die syntax vor. mfg pebisoft
@avrler: Klar geht das. Einfach ab der zuvor definierten Grafikhome-Adresse per Auto Write + Inkrement an das T6963C-LCD senden. MfG Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.