PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit der Ausgabe über LCD



Daniel1979
05.04.2008, 21:05
Hallo,

ich habe mir für die RN Control den LCD Adapter besorgt und das LCD Display.Das Beispielprogram wird einwandfrei compiliert und auch bei der Übertragung gibt es keine Probleme. Wenn das Program startet ertönen auch die richtigen Signale und das Licht vom LCD schaltet sich ein. Text wird mir nicht angezeigt.
Bei Betätigung der Taster ertönt der richtige Ton jedoch auch hier gibt es keine Ausgabe am Display. Bei Betätigung von Taster 5 ertönt der zugehörige Ton und die Bildschirm Beleuchtung schaltet wie gewünscht um.Text gibt es auch hier nicht. Habe auch schon am Poti rumgeschraubt, was aber keinen erfolg brachte :)
Ist vielleicht was mit meinem Adapter nicht in Ordnung?
Über Hilfe Ratschläge würde ich mich freuen

MfG Daniel

linux_80
05.04.2008, 22:32
Hallo,

An welchem Port ist das LCD an gesteckt ?
Wie wurde das Programm auf den Mega32 geflasht ?

Sind die Antworten "PortB" und "ISP", dann ist die nächste Frage:
Steckt der ISP-Adapter noch bei Programmstart ?

Ansonsten einfach noch ein paar weitere Infos anbieten !

Daniel1979
05.04.2008, 22:47
Hi,

ja das LCD ist an PortB angeschlossen.Hatte auch schon den gedanken dass es am ISP liegt weil ich in der Doku der RN Control gesehen habe dass PortB zum Teil auch vom Isp verwendet wird. Aber auch wenn der ISP nicht angesteckt ist ändert sich nichts. Welche Infos brauchst du denn?
Das verwendete LCD ist das 20*4 von robotikhardware.Ausserdem verwende ich den dazugehörigen standard Adapter.

MfG Daniel

linux_80
05.04.2008, 23:24
Interessant wär wo genau das LCD angeschlossen ist, also wo welches Pin, der Rest ist bei den Text-LCDs relativ gleich, egal wie gross.

Dann könnte evtl. noch der Motortreiber (L293) dazwischenfunken, mit PB0 und PB1 ?

Daniel1979
05.04.2008, 23:32
Die Pin Belegung is folgende:
PortB.0 = DB7
PortB.1 = DB6
PortB.2 = DB5
PortB.3 = DB4
PortB.5 = E
PortB.7 = RS
PortB.6 = Lcd_rw
PortB.4 = Lcd_power

Toggle Befehl für das Licht mit Taste 5 funktioniert.

PortB.0 entspricht Pin 1

Daniel1979
05.04.2008, 23:43
ach ja, noch was:

Hab den l293 jetzt entfernt, zeigt aber auch keine wirkúng

MfG Daniel

linux_80
06.04.2008, 02:01
Du hast ja den LCD-Adapter vom RN, da kann man mit der Belegung auch nicht aus.

Jetzt könntest Du dann mal bei PortD und PortC ausprobiern.
Bei PortD darf aber kein $baud und keine Prints im Code sein, denn dann sind die beiden Ports PD0/1 für UART belegt.


Oo, da wird ja das RW-Pin benutzt, was aber der Config LCD bei Bascom nicht vorsieht, deshalb kommt nix am LCD an !

Bau mal das am Anfang ins Programm ein, aber nach dem Config:


' Bascom verwendet kein RW zum LCD !
Config Portd.6 = Output
Portd.6 = 0 ' R/W LCD

Initlcd

Nur noch den richtigen Port angeben an dem angesteckt ist.

Daniel1979
06.04.2008, 15:45
'################################################# ##
'Ein Standard-LCD 4x20 Zeichen mit dem
'RN-LCDStandardAdapter an Port B
'von RN-Control angeschlossen
'rnlcdadapterstdtest.bas
'
'Autor: Frank
'Verwendet wurden: RN-Control & RN-LCDAdapter (robotikhardware.de)
'Weitere Beispiele sind im Roboternetz gerne willkommen!
'################################################# #############
$programmer = 1 'MCS USB (Zeile weglassen wenn anderer Programmer)
' -------------- RN-Control übliche _____________________
Declare Function Tastenabfrage() As Byte
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000 'Quarzfrequenz
'$baud = 9600
'Config Scl = Portc.0 'Ports fuer IIC-Bus
'Config Sda = Portc.1
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer
I2cinit
Start Adc
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
'Print
'Print "**** RN-CONTROL V1.4 *****"
'Print "Demoprogramm um Zusatzboard RN-LCDAdapter zu demonstrieren"
'Print
' -------------- Ende RN-Control übliche _____________________
Config Pinc.4 = Output 'Spannung an LCD aktivieren
Lcdpower Alias Portc.4
Config Pinc.6 = Output
Lcd_rw Alias Portc.6
Lcd_rw = 0
Lcdpower = 1
Wait 1
Config Lcd = 20 * 4 , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5 , Rs = Portc.7
Config Lcdbus = 4
Initlcd
Cls
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "RN-LCDADAPTER"
Locate 2 , 1
Lcd "an RN-Control"
Locate 3 , 1
Lcd "beides Bausaetze von"
Locate 4 , 1
Lcd "robotikhardware.de"
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1:
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 1"
Case 2
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 2"
Case 3
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 3"
Case 4
Cls
Locate 1 , 1
Lcd "Gedrueckt wurde nun:"
Locate 2 , 1
Lcd "Taste 4"
Case 5
Cls
Locate 1 , 1
Lcd "Licht wird umgeschaltet"
Toggle Lcdpower
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
' Diese Unterfunktion fragt die Tastatur am analogen Port ab
' Sollte beim betätigen einer Taste kein Quittungston kommen, dann
' muss die die Tastenabfrage (Select Case Anweisung in Funktion )
' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in
' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen
' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Ws = Getadc(7)
' Print "ws= " ; Ws
If Ws < 1010 Then
Select Case Ws
Case 400 To 455
Tastenabfrage = 1
Ton = 550
Case 335 To 380
Tastenabfrage = 2
Ton = 500
Case 250 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function

So sieht es momentan aus. Ich hab´s jetzt zuerst mit Port D versucht. Das Problem mit der Ausgabe war unverändert. Vielleicht liegt es auch daran, dass der "Beep" auch über Port D läuft. Hab jetzt alles was mit Port C zu tun hat als Kommentar markiert sowie $baud und die print Anweisungen. Auch da ist die Ausgabe unverändert. Der ton wird ausgegeben und das Licht lässt sich an und ausschalten. Nur Text wird nicht angezeigt. Es leuchten LED1-3 und 6 und 7. Je nach Tastendruck leuchten unterschiedliche LEDs was zumindest zeigt dass sich die Ausgänge ändern.
Auch bei diesem Program wird wie in deinem Vorschlag portc.6 bzw.d.6 auf null gesetzt.
Config Pinc.6 = Output
Lcd_rw Alias Portc.6
Lcd_rw = 0
Aber ich denke das Program sagt dir eh mehr als meine Erklärungen :)

MfG Daniel

linux_80
06.04.2008, 18:00
Nächster Versuch,
wenn im AVR garkein Programm ist, also alles löschen,
dann die Stromversorgung (wieder) eingeschaltet wird, was zeigt dann das LCD an ?
Wenn nix da ist, musst Du etwas am Kontrastpoti drehen, bis bei einer Zeile die Kästchen zu sehen sind, danach wieder mit dem Programm testen.

Beim PortD kommt noch dazu, dass wegen der UART der MAX232 eine Leitung beeinflusst, am besten sollte der PortC taugen, da sieht man auch gleich die Signale an den LEDs blinken (solange man I2C nicht benutzt).


Edit-PS:
Du hast ja auch diesen Adapter mit passendem LCD, da ist das anders mit den Kästchen, bei dem am besten am Kontrast drehen wenn Text angezeigt werden sollte. Wenn man zu weit dreht, kommen alle Kästchen, dann ist es zuviel, und ein klein wenig zurück, das diese gerade nicht angezeigt werden.

Ich hoffe das kapiert jetzt noch einer #-o

Daniel1979
06.04.2008, 18:22
Der Speicher ist jetzt leer und es befindet sich kein Program mehr im AVR.
Am Display tut sich gar nichts, egal auf welchem port ich es anschliesse.Es erscheint auch keine Zeile mit Kästchen. Wenn ich die Hintergrundbeleuchtung aktiviere und am Poti drehe sieht man ganz leicht im Hintergrund dass sich Kästchen Abheben.
Hab ich das Adapterboard vielleicht falsch gejumpert? Hab den Jumper für die Beleuchtung an Position 2

Daniel1979
06.04.2008, 18:55
Auch wenn Text angezeigt werden sollte ist es das gleiche. Man kann nichts sehen.

linux_80
06.04.2008, 23:39
Wie meinst Du mit Jumper an Pos. 2 ?
Man kann den (JP1) doch nur Stecken oder nicht, bei mir ist keiner, und es geht.
Die andern Jumper (JP2) sollten beim 4-Bit-Mode alle gesteckt sein, meintest Du diesen mit Nr. 2 !?

Dann musst Du das ändern des RW-Pins direkt vor dem Initlcd haben, aber nach dem Config LCD, siehe Post oben von mir mit dem Beispiel dazu !

Daniel1979
07.04.2008, 00:42
Die 4 Jumper für den 4 bit mode sind gesteckt. Mit Pos 2 meinte ich die pos. zwischen pin 3 und 4 (also mit dem 27 ohm Vorwiderstand). Habe die Programmzeilen jetzt auch umgestellt:
Config Lcd = 20 * 4 , Chipset = Ks077
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5 , Rs = Portc.7
Config Lcdbus = 4
Config Pinc.6 = Output
Portc.6 = 0
Initlcd
Leider hat sich durch diese Veränderung auch nix getan.
Ich möchte dir gerne für deine Geduld bei mir danken :) . Dies ist mein erstes Controllerboard und ich habe im moment Anlaufschwierigkeiten :)
Ich werde in der Arbeit nochmal die Stecker durchmessen, nicht dass da vielleicht irgend ne Brücke drin is die mir alles versaut. So langsam fang ich an zu befürchten dass sich um ein hardware problem handelt.

MfG Daniel

linux_80
07.04.2008, 18:09
Hm :-k was hastn Du dann für einen LCD-Adapter, bei meinem gibts keinen Jumper zum umstecken !

Ich bin von diesem ausgegangen (welches ich habe)da dieser unter RN-LCD-Adapter läuft :
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=152
mit diesem LCD:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=80
der andere wäre der Standard:
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=179
der ist für "normale" LCDs, bei diesen wäre es i.d.R. mit dem Balken in der 1. Zeile, wenn man am Kontrast dreht und das LCD noch nicht initialisiert ist.

Hast Du auch das LCD das es von RH gibt ?
http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=178
Das LCD sollte passen.
Und mit dem Beispielprogramm zum diesem Adapter sollte es auch mit dem RN-Control laufen, da muss noch irgendwo anders ein Fehler sein :-k

Zum Jumper, die sind nur für die Hintergrundbeleuchtung, hier könnte man sich ausrechenn welche Kombination am besten wäre, geht aber erstmal mit allen.

So, genug Links ;-)

Daniel1979
07.04.2008, 23:22
Vielen lieben Dank. Ich hab jetzt gleich nachgeschaut. Also ich habe wie du bereits vermutet hast den Adapter für Standard LCD mit dem LCD, also link 3 und link 4. Also müsste ja eigentlich alles passen. Ich vermute, dass es vielleicht an irgend welchen Lötstellen liegt die nicht recht passen. Da werde ich mir mal ne Testschaltung am Steckboard aufbauen und meinen Adapter nochmal mit dem Durchgangsprüfer testen. Das Kabel jedenfalls passt. Das hab ich heut durchgeprüft. Ich habe erst meinen Lötkolben benutzt bei dem die Spitzen ziemlich übel sind und den rest dann in der Arbeit mit gutem equip gelötet. Könnte auch sein, Dass irgend was Schaden genommen hat. Schade nur, dass du den anderen Adapter hast und es so nicht testen kannst. Ich gebe dir auf jeden Fall gleich bescheid wenn ich das getestet hab.
MfG Daniel :)

Daniel1979
09.04.2008, 08:28
Ich hab jetzt mit dem Durchgangsprüfer jede Verbindung durch. Soweit schaut alles ganz gut aus. Aber um ganz sicher zu sein probier ich mal auf dem Steckbrett nur mal kurz die Beleuchtung und den Kontrast anzuschliessen, dann müsste ich ja auch endlich die schwarzen Vierecke mal sehen. Aber wenn nicht grad Bauteile kaputt sind, dann liegt es wohl doch am program. Also drückt mir mal die daumen

MfG Daniel