PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lcd klappt nicht - drehe noch durch



patti16
19.01.2006, 23:28
hallo


wie der titel schon sagt habe ich schon alles mögliche hier durch forstet sogar auch bücher aber es will einfach nicht klappen ich kann das zwar ein und ausschalten aber ein buchstabe bekomme ich nicht drauf warum auch immer.

habt ihr vielleicht ne idee wie ich das hin bekommen kann

mit dem orginal chip von robotikhardware klappt es aber nicht mit meinem programmierten und conifg. Chip (Atmega8).


hier der code:



$regfile = "m8def.dat"
$crystal = 16000000
$lcd = 4


Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portb.0
Config Lcd = 20 * 4



Cls
Lcd "Hello world."
End



sollte sonst noch was drauf bzw. darein?

gruß
patrick

Ratber
20.01.2006, 04:41
Was willst du mit "$LCD 4" an nem M8 ?

Las das mal weg.

patti16
20.01.2006, 08:34
jop klappt dann aber auch nicht.

Rage_Empire
20.01.2006, 09:03
Wenn du das Display mal verpolt angeschlossen hattest, ist es danach schrott. Hatte ich auch schonmal.

patti16
20.01.2006, 09:05
nee habe ich gott sei dank nicht wie gesagt mit dem orginal chip vom frank klappts ja aber wenn ich das programmiere halt nicht

patti16
20.01.2006, 10:45
hat keiner eine ideee?????????????????

chr-mt
20.01.2006, 11:00
Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portb.0

Hi, hast du die LCD Anschlüsse wirklich auf 3 Ports (C,D,B) verteilt, oder ist da vielleicht einfach ein Schreibfehler drin ?
Geht die Kontrastregelung ?

Gruß
Christopher

Andree-HB
20.01.2006, 11:01
Hast Du deinen Chip auch per Fusebits auf die (externen) 16Mhz eingestellt ?
Sonst wird das gesamte Timing durcheinanderkommen, da im Header 16Mhz angegeben ist, der MC aber vielleicht nur mit den voreingestellten, internen 1Mhz arbeitet.

Versuche ansonsten mal im Header
$crystal = 1000000

patti16
20.01.2006, 11:03
hallo

die kontrast regelung wird ja manuel per schrauben zieher gemacht und eine phase hell und dunkel wird per portd6 eingestellt(hell oder dunkel).

das display kannn ich auch aus machen aber ich probiere deine version gerade nochmal obwohl ich es gleich habe melde mich dann gerade wieder zurück.

gruß
patrick

patti16
20.01.2006, 11:04
hallo

habe auch die fusebits richtig eingestellt das hatte ich als erste gemacht.

gruß
patrick

Andree-HB
20.01.2006, 11:07
Wenn es mit dem vorprogrammierten Chip von Frank geht, und dem gleich eingestellten Chip von Dir nicht, dann hat der Chip `ne Macke !
Sind vielleicht die Ports hin ?

Übrigens sind Deine Pins sehr gemischt (Ports C,D,B) ist das so gewollt ?

patti16
20.01.2006, 11:08
klappt auch nicht mit der einstellung Christopher.


gruß
patrick

patti16
20.01.2006, 11:09
das ist so vorgegeben habe ja sogar das board von dem robotikhardware genommen und nur den atmega8 gewechselt und wollte das halt jetzt zum laufen bringen mit nem eigenem programm.


und das mit dem chip kann nicht sein dann müssten 5 Chips kaputt sein und mit nem anderen programm auf nem anderen Board klappen ja sogar, das ist ja das seltsame.

gruß
patrick

Andree-HB
20.01.2006, 11:11
Programmiere doch mal das Programm von Frank in Deinen MC, allerspätestens das sollte dann klappen !

patti16
20.01.2006, 11:11
ok das kann man ja mal probieren aber ich muss das halt noch gerade draus lesen melde mich dann gleich nochmal.

gruß
patrick

patti16
20.01.2006, 11:17
das geht doch gar nicht so einfach wenn ich den chip auslesen und dann auf einen anderen übertrage dann blinkt das display

Andree-HB
20.01.2006, 11:19
evtl. noch nach dem "Config Lcd 20 * 4" ein "Initlcd" setzen...

Andree-HB
20.01.2006, 11:21
dann blinkt das display


...kommt immer drauf an, welche Pins benutzt werden. Evtl. werden die nämlich beim Flashen immer von den ISP-Anschlüssen mitbenutzt - das ist normal !

patti16
20.01.2006, 11:27
ja aber dann müsste es ja klappen wenn ich den stecker von isp raus ziehe dann blinkt das genau so noch .

alles voll komisch.

gruß
patrick

patti16
20.01.2006, 11:30
ok auf dem chip ist auch das lockbit21 disabled

Andree-HB
20.01.2006, 11:35
Also wenn das bei korrekt angeschlossenem Display, korrekter Stromversorgung, korrekter Kontrastspannung an Pin3 vom LCD und richtig eingestellten Fusebits am MC nicht funktioniert, dann weiss ich nicht weiter :



$regfile = "m8def.dat"
$crystal = 16000000

Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portb.0
Config Lcd = 20 * 4
Initlcd

Cls
do
locate 1,1
Lcd "Hello world."
loop
End

patti16
20.01.2006, 11:47
das klappt einfach nicht habe ausserdem das ganze in den 4 bit pin modus eingestellt.

gruß
patrick

Andree-HB
20.01.2006, 11:50
- ich gebe auf - ;-)

patti16
20.01.2006, 11:54
kann ich gut verstehen ich habe auch ehrlich gesagt auch kein bock mehr warum das uach immer nicht klappt ich werde glaube ich lieber dann das programm vom frank nehmen klappt wenigstens wohl.

naja vielleicht hat der frank ja noch nee idee wenn der später mal online kommt.

aber danke für die mühe die ihr euch gemacht habt.

gruß
patrick

Vitis
20.01.2006, 12:40
hat der m8 nen JTAG ? und ist der evtl. noch aktiviert per lock / fuse ?

hat ich mal an nem m16 und hab mich dämlcih gesucht

patti16
20.01.2006, 12:51
meinst du das ??
so als was soll der jtag eingestellt sein?


gruß
patrick

patti16
20.01.2006, 13:21
habe auch gerade gesehen das es jtag gar nicht gibt gibt nur das:
0:CKOPT 0
1:CKOPT 1

soll ich da was verändern.

gruß
patrick

Frank
20.01.2006, 15:52
Ich weiss nicht so genau was du machen willst. Wenn Du Rn-Keylcd nutzt, dann brauchst du das Board ja nur per rs232 oder i2c ansteuern. Selbst muss man den Controller ja nie programmieren.

Willst du eine eigene Firmware dafür schreiben?
Wenn ja, dann ist das nicht so ganz einfach. Pinbelegung hab ich nicht im Kopf, das musst du also ganz genau mit Schaltplan überprüfen. Zudem läßt sich das LCD nicht mit den Bascom Standard Befehlen ansteuern da der LCD Controller anders initialisiert werden muss. Dazu gab es hier im Forum schon mehrere Threads. Versuche den mal zu finden. Es ging um das Ansteuern des EA-DIP204 LCD´s. In dem betreffenden Thread hab ich ne kleinen Codesequenz gepostet.

patti16
20.01.2006, 15:55
aha gut mache ich mal danke für die antwort

Frank
20.01.2006, 15:56
Hier ist betreffender Thread:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=10766

Andree-HB
20.01.2006, 16:56
...arghh, ich dachte, es wäre eine Standardbeschaltung mit einem Standard-Display !

Ratber
20.01.2006, 17:22
Ja,eine Damen und Herren.

Das war die neueste Folge von "Informationen sind alles" :wink:

patti16
20.01.2006, 18:57
hallo

nun habe ich aber das problem das es so immer noch nicht klappt




$regfile = "m8def.dat"
$crystal = 16000000


'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen

Config Pind.5 = Output 'E
E Alias Portd.5
Config Pinb.0 = Output 'RS
Rs Alias Portb.0
Config Pinc.0 = Output 'D4
D1 Alias Portc.0
Config Pinc.1 = Output 'D3
D2 Alias Portc.1
Config Pinc.2 = Output 'D2
D3 Alias Portc.2
Config Pinc.3 = Output 'D1
D4 Alias Portc.3

Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portb.0
Config Lcd = 20 * 4
Config Lcdbus = 4


Declare Sub Rn_writelcdcode(byval Zeichen As Byte) As Byte
Dim Zeichen As Byte


Call Rn_writelcdcode(&B00101100) ' Funktionsset RE=1
Call Rn_writelcdcode(&B00001001) ' 4 Bit-Datenlänge, extension
Call Rn_writelcdcode(&B00101000) ' Funktionsset RE=0

Call Rn_writelcdcode(&B00000110) ' Entry Mode Set Cursor Auto-Increment
Call Rn_writelcdcode(&B00001100) ' Display ein, Cursor aus, Blinken aus




Sub Rn_writelcdcode(byval Zeichen As Byte)
Rs = 0

If Zeichen.4 = 1 Then D1 = 1 Else D1 = 0
If Zeichen.5 = 1 Then D2 = 1 Else D2 = 0
If Zeichen.6 = 1 Then D3 = 1 Else D3 = 0
If Zeichen.7 = 1 Then D4 = 1 Else D4 = 0
E = 1
Waitus 2
E = 0
If Zeichen.0 = 1 Then D1 = 1 Else D1 = 0
If Zeichen.1 = 1 Then D2 = 1 Else D2 = 0
If Zeichen.2 = 1 Then D3 = 1 Else D3 = 0
If Zeichen.3 = 1 Then D4 = 1 Else D4 = 0
E = 1
Waitus 2
E = 0

Waitus 250
End Sub


Initlcd

Locate 1 , 1
Lcd "Hello world."



End