mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom GrafikLCD Hilfe


Autor: Andy Meier (xaero5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andy Meier (xaero5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... ups, ganz vergessen, das LCD hat den "standart" T6963C
Controller...

Autor: dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solle in der Hilfe von Bascom stehen -> PSET, Config LCD

Autor: Ingo Sauerland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit was für einer sprache proggst du sonst dein stk.
mfg pebisoft

Autor: Andy Meier (xaero5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lade dir die basocdemo runter und installiere diese, damit kannst du
übersichtlich die fusebits einstellen.
mfg pebisoft

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, nur bei character-lcd.
du kannst die lib aber ändern.
mfg pebisoft

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andy Meier (xaero5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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....

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andy Meier (xaero5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG ist deaktiviert....
trotzdem nur wirre zeichen/symbole...

Autor: avrler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, fs musst du mit im programm angeben, brauchste aber nicht
anklemmen, so sieht es die syntax vor.
mfg pebisoft

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
geh mal mit: mode=6 und "fs auch setzen.
mfg pebisoft

Autor: Andreas Kassner (andi_k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@avrler: Klar geht das.
Einfach ab der zuvor definierten Grafikhome-Adresse per Auto Write +
Inkrement an das T6963C-LCD senden.

MfG
Andi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.