PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Minicontrol mit Wintek 27 * 4 Display von Pollin



Stargate
10.12.2006, 15:51
Hallo Leute, erst mal großes Lob an dieses Forum, klasse sache!

Also hier mein Problem.

Habe mir vor einiger Zeit ein RN-Minicontrol Board mit einem AT Mega 168 zugelegt und dazu noch das Adapterboard.

Das Display von Wintek, das hier auch von einigen benutzt wird , das 27 * 4 Zeilige habe ich an die Adapterplatine angeschlossen und muss jetzt den Chip programmieren. Leider haben viele von euch oft den At-mega 8 und ich hab das gefühl da sind immer wieder Unterschiede...

Ich programmiere in Bascom und bin da schon einigermaßen durchgestiegen. Ich habe Programmieren in der Schule gehabt, und kann c++ recht gut.

SO nun mein Problem.
Mit meinem Programm will das Display keinen mux von sich geben...nur wieso?

Ich poste hier mal meinen Code:


'Die üblichen Definitionen bei Standardprogrammen auf Miniboard
$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
'$hwstack = 32
'$framesize = 32
'$swstack = 32

'Erster Test des Displays Wintek 27 * 4 Displays von Pollin


'Einbindung der LCD-Bibliothek für ein 2-Prozessor-Display
$lib "lcd4e2.lbx"

'Bascom kennt keine Display mit 27 * 4 Zeichen, daher 40 * 4 verwenden
Config Lcd = 40 * 4

'man achte auf die Ergänzung E2
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , E2 = Portc.3 , Rs = Portc.2 , 'Rw = Portd.3'

' Systemvariable der LCD-Bibliothek (wichtig, bloß nicht ändern)
Dim ___lcde As Byte

' wählt den ersten Chip aus aus
___lcde = 0
'die beiden oberen Zeilen initialisieren
Initlcd
'die beiden oberen Zeilen löschen
Cls

'auf Chip 2 schalten
___lcde = 1
'die beiden unteren Zeilen initialisieren
Initlcd
'die beiden unteren Zeilen löschen
Cls

___lcde = 0
' wählt die obere Zeile aus
Upperline
' schreibt in die erste Zeile an Position 3
Locate 1 , 3
' den Text in Anführungszeichen
Lcd "Zeile 1 : Felix Koenig"
' wählt die zweite Zeile aus
Lowerline
' schreibt in die zweite Zeile an Position 2
Locate 2 , 2
' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
Lcd "Zeile 2 : Ist sehr froh :-)"
' unterdrückt den Cursor
Cursor Off

' wählt die beiden unteren Zeilen aus

___lcde = 1
Waitms 100
Cls
Thirdline
Locate 1 , 1
Lcd "Zeile 3"
Fourthline
Locate 2 , 1
Lcd "Zeile 4"
Cursor Off


End 'end program

So, ich habe hier mal HW SW und FS erst mal weggelassen weil ich da noch nicht ganz dahinter gekommen bin.

Ich hoffe ihr findet Fehler die ich hier reinproduziert hab und könnt mir weiterhelfen.

so nun noch schnell die pinbelegung:

DB7 (Port 0 an Adapterboard) ist PD6
DB6 (Port 1 an ") ist PD7
DB5 (Port 2 an ") ist PB0
DB4 (Port 3 an ") ist PB5
EN2 (Port 4 an ") ist PC3
EN1 (Port 5 an ") ist PB3
RW nicht genutzt, liegt an GND
RS (Port 7 an ") ist PC2

--> so die Belegung ist aus der schaltskizze des Rn-Minicontrol abgelesen, hoffe ich hab hier schon nix falsch gemacht.
Das Adapterboard ist an der Steckbuchse Ctrl angeschlossen.

So, ich muss mal weiter, wenn ihr noch angaben bracuht, sagt bescheid. Bin über jede Hilfe dankbar

Viele Grüße
Felix König (Stargate :-) )

Millenniumpilot
10.12.2006, 16:09
Hallo Felix,

ich binde meine 27x4 Pollindisplays ohne irgendeine zusätzliche Library ein. Funktioniert bisher ohne Probleme:

Dim ___lcdno As Bit
Config Lcdpin = Pin , E = Portc.3 , E2 = Portd.7 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
Config Lcd = 40 * 4

usw.

Gruß Dirk

Stargate
10.12.2006, 22:17
JAAAAAAAAAAAAAAAAA *brüll* \:D/

habe es geschafft, nach langem Probieren hab ich's geschafft das display anzusteuern! endlich! also doch noch ein erfolgreiches wochenende.

wenn ich demnächst zeit habe werde ich für euch meinen code mal posten

viele grüße und danke für die hilfe(war hilfreich ;-) )

Felix
=D>

Stargate
12.12.2006, 19:02
So, hier wie versprochen meinen Code zum ansteuern des 27*4 Displays von Wintek (Pollin Artikel) mit einem RN-Minicontrol am Ctrl Port:



$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
'$hwstack = 32
'$framesize = 32
'$swstack = 32

'Die üblichen Definitionen bei Standardprogrammen auf Miniboard







Config Lcd = 40 * 4 'Bascom kennt keine Display mit 27 * 4 Zeichen,
'daher 40 * 4 verwenden

Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , E2 = Portc.3 , Rs = Portc.2 , 'Rw = Portd.3
'man achte auf die Ergänzung E2

Dim ___lcdno As Byte ' Systemvariable der LCD-Bibliothek



___lcdno = 0 ' wählt den ersten Chip aus
Initlcd 'die beiden oberen Zeilen initialisieren
Cls 'die beiden oberen Zeilen löschen

___lcdno = 1 'auf Chip 2 schalten
Initlcd 'die beiden unteren Zeilen initialisieren
Cls 'die beiden unteren Zeilen löschen



___lcdno = 0 ' wählt die obere Zeile aus

Locate 1 , 1 ' schreibt in die erste Zeile an Position 1
Lcd "Zeile 1 "; ' den Text in Anführungszeichen

Locate 2 , 1 ' schreibt in die zweite Zeile an Position 1
Lcd "Zeile 2 "

Cursor Off ' unterdrückt den Cursor



___lcdno = 1 ' wählt die beiden unteren Zeilen aus

Locate 1 , 1
Lcd "Zeile 3 ";

Locate 2 , 1
Lcd "Zeile 4 "

Cursor Off


End 'Programmende


So viel Spaß damit und nochmal danke für eure Hilfe, auch mit vielen anderen Beiträgen.

Gruß Felix :-)

Stargate
23.02.2007, 17:41
So also mein Projekt schreitet voran und ich habe noch so ein paar Grundlegende Fragen....

z.B habe ich den code für das display mehr oder weniger ja aus vielen beispielen heraus übernommen, aber z.b. war ich eben etwas verdutzt, also ich nochmal auf die deklaration der Displayhälftenansteuerung, oder wie man das nennt, geschaut hab. Dim ? ___lcdno ? as byte .... wieso denn 3x _ ? muss das so sein oder ist das egal?

ich bin nämlich grade dabei eine Dokumentation zu schreiben und da stocke ich manchmal an der erklärung von solchen kleinigkeiten

gruß felix