PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Displayfehler mit rn- lcd



kleinstar
24.05.2007, 19:22
Hallo..
ich hab ein Problem:
bau grad eine menüsteuerung mit rn control und lcd.
eigentlich funktioniert alles gut, aber es kommt manchmal zu unerklärlichen fehlern: text wird nicht ausgegeben, komische Zeichen erscheinen..

solche kleinen sachen lassen sich meist mit:
lcd_clr
waitms 25
schreibe " text"

lösen, also mit ner kleinen pause aber manchmal hilft das auch nix.. dazu kommt noch, das das prog etwas größer wird vieleicht so 2000 zeilen oder so.
kann das an zu kleinen speichereinstellungen liegen, hab ich mal gelesen:

$hwstack = 40
$framesize = 40
$swstack = 40

ich hab einen mega32..
dankeschön!

linux_80
24.05.2007, 19:36
Hallo,

arbeitest du mit Interrupts, in denen evtl. sogar auch noch Texte ans LCD gesendet werden ?
Dann könnte es sein das sich die Befehle überschneiden !

Ob die Werte für die Stacks, reichen kann man aus der Ferne schlecht sagen, aber zu klein sind die zumindest nicht, für den Anfang sollte es reichen.

kleinstar
24.05.2007, 19:41
joo, hab interrupts,
aber die sin doch eigentlich ausgeschalten..hmm,
ich werd sie ma auskommentieren, obs dann besser is
danke erstmal

kleinstar
24.05.2007, 22:52
hallo,
disable von timern und interrupts hilft nix

hängt das viel. damit zusammen:
habe mal zu testzwecken leds aufn board blinken lassen, aber eigentlich hab ich das ausm prog entfernt..denkich
aber die leds blinken immernoch, schon die ganze zeit, wennich ein prog neu aufspiel.. echt komisch..
muss nochma meinen code durchschaun..

kleinstar
24.05.2007, 22:58
wenn ich diese zeilen raus nehm, leuchten die leds nicht mehr,
aber die braucht man scheinbar für den iic bus um das display anzusteuern

Config Scl = Portc.0
Config Sda = Portc.1

aber es sind genau die 2 leuchtenden leds
versteh nicht, was die mit dem iic bus zutun haben sollen...
hatte jemand auch schonmal sowas?
fürn kleinen tip währ ich echt dankbar!

kleinstar
24.05.2007, 23:01
ich nochma:
das sind doch zwei leitungen für den iic bus, aber warum liegen die auf port c,
leuchten die leds weil dort signale laufen?
ganz viele fragen tun sich auf

linux_80
25.05.2007, 00:21
Lass dich von den LEDs nicht verwirren, das RN-Control hat einen Mega32 drauf, und die I2C-Pins sind auf PortC.0 und 1. Deshalb blinken die, wenn dort was übertragen wird.
Du kannst ja die ersten zwei Dipschalter umlegen, dann sieht man es nicht mehr blinken ;-)

Zu den Interrupts, die stören hier nur, wenn Du in der ISR einen LCD-Befehl verwendest.

Du kannst ja noch etwas mehr zu Deinem Aufbau erzählen, so kommt man nicht recht weiter.

kleinstar
25.05.2007, 18:09
hallo,
ich stör mich jetzt nicht mehr am blinken:)
hab alles mit interrupts auskommentiert und es ändert sich nixz..
hab int0 verwendet..und keine display befehle in den isp routinen...
wenn man einen timer0 noch benutzt, zählt dann die überlauf routine auch als interrupt, wenn man nebenbei ne led blinken lassen will und muss dann interrupts global einschalten? das könnte ja dann stören ..

vielleicht arbeite ich einfach zu schnell für das arme display und ich muss immer waitms 20 dazwischen tun.. aber manchmal kann man nichmal ein wort ausgeben... und immer waitms 20 nervt dann.. is auch nichts anständiges, weil es ja dann wieder rumspinnen könnte irgendwann anders..
aber danke für die antwort

kleinstar
26.05.2007, 14:33
hallo,
kann das sein, dass meine senderoutinen zum lcd nich optimal sind
ich schick sie hier mal:(hab leider immernochnich den button für quelltext einfügen gesehn)


Sub Lcd_cursor(byval Spalte As Byte , Byval Zeile As Byte)
Local Befehle As String * 4
Befehle = Chr(27) + Chr(79) + Chr(spalte) + Chr(zeile)
I2csend Rnkeylcd_slaveid_write , Befehle , 4
End Sub
'-----------------------------------------------------------------------------

Sub Lcd_clr()
Local Befehle As String * 2
Befehle = Chr(12)
I2csend Rnkeylcd_slaveid_write , Befehle , 1
End Sub
'-----------------------------------------------------------------------------
Sub Schreibe(byval Text As String) 'Print
Local Le As Word
Le = Len(text)
I2csend Rnkeylcd_slaveid_write , Text , Le
End Sub



die lcd anzeige spinnt vollig rum..
wenn ich einen bildschirm dialog fertig hab, was anders äder, dann kann es sein, das sonstwo der bildschirm nicht geht...

kann da jemand helfen, bin echt am verzweifeln, weilich ne richtige menüführung geschrieben hab, die massich groß ist und das sooo nervig is..
danke

linux_80
26.05.2007, 14:53
Was hast Du eigentlich für ein LCD ? Von I2C hast Du am Anfang noch nix geschrieben !

Lässt Du das mit TWI oder Soft-I2C übertragen ?


Der Button für Code darstellen heisst "Code", und ist direkt oberhalb des Eingabefeldes, mit einem Haufen anderer Buttons. Wenn der Quelltext schon drinsteht, diesen einfach markieren, und auf den Code-Button klicken, schon sind die Tags hinten und vorne eingebaut.

kleinstar
26.05.2007, 15:02
ich denke ich übertrage mit iic bus zum rn lcd..
Config Scl = Portc.0
Config Sda = Portc.1
was anderes steht nich in meinem code..
vielleicht stimmt was mit meiner übertragung nicht richtig, das kann schon sein.. vielleicht bringt es was, wenn ich die autoscroll funktion am display ausschalten könnte (mir kommts so vor , als scrollt es immer alles weg)

naja manchmal kommen auch kryptische zeichen raus ohne dasses sinnlos weiter scrollt..

könnnte ich soft-i2c irgendwie configurieren.. bringt das was?
dank dir linux

linux_80
26.05.2007, 15:38
Das es I2C ist, ist schon klar, ich wollte wissen ob es per Software oder Hardware (TWI) vom AVR aus gemacht wird !
Da Dir das aber nix gesagt hat, ist es per Software.

Welches LCD hast Du denn nun, man kann so nur rumrätseln, ob es am I2C, am LCD, oder sonst was liegen könnte !

Zu jedem Bascom-Befehl gibts bei Bascom eine Hilfe dazu, incl. Beispiele, die darf auch mal konsultiert werden ;-)

kleinstar
26.05.2007, 15:59
hi,
sorry, ich schau ja auch oft in der hilfe nach.. aber wenn man nich weiß nach was man gucken soll..hmm
ich hab das rn key lcd 1.2 mit dem lcd teil: EA Dip 204-4 ..4 x 20 zeichen mit kontroller KS0073 , falls dir das was sagt..

aber wennich immer waitms 20 zwischen lcd_clr und dem schreiben Befehl setze wirds meist besser.. kann das nich sein, dass das board vielleicht zu schnell sendet und sich da was verschluckt..
oder die verbindung nicht richtig konfiguriert ist?
danke mr linux!!

linux_80
26.05.2007, 17:14
Hm, das RN-Key-LCD hab ich nicht, wenn ich das gleich gelesen hätte, hätte ich wohl nicht weitergelesen damals :-k
Ich weiss da drüber auch nicht mehr als die DBs hergeben, das darfst Du aber selber machen :-)
Ich hab dafür ein RN-LCD (Adapter).

Da Du aber schon die Beispiele zum Key-LCD verwendest, muss der Fehler evtl. ausserhalb des RN-Control liegen.

Da darf dann jetz jemand anders weitermachen :-)

kleinstar
26.05.2007, 17:18
:)danke..
ich denk ich werd einfach mit waitms soolange rumbasteln bisses schön is..shit
nee,mach nur deins weiter ich machs schon irgendwie..
das prog hat schon 1300 zeilen, langsam machts keinen spaß mehr das jede minute zu übertragen;(
grüße
schönes we