PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Display 16*1 probleme



Carlos31
12.11.2009, 18:40
Guten tag

Hab ein problem mit ein display 16*1 (displaytech 161a) die einzige form um was zu schreiben ist es so zu behandeln als wäre ein 8*2 zeichen display , als hardware hab ich ein atmega 8 das läuft auf 8 mhz intern frequenz , mein problem ist es das alles funktioniert einwandfrei aber nur 10 minuten danach kommen 8 schwarze kästchen am display , wenn ich die stromzufuhr unterbreche hab ich wieder mein text und läuft alles normal nach 10 minuten kommen wieder die kästchen an was könnte es liegen ? , ich hab 2 gleiche schaltungen und beide verhalten sich gleich .



$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40




Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2


Config Lcd = 16 * 1





Config Portb.1 = Input
Config Portb.2 = Input
Config Portd.0 = Input

Config Portc.1 = Output
Config Portc.2 = Output

Portb.1 = 1
Portb.2 = 1
Portd.0 = 1

Dim Dummy As Eram Word
Dim Speicher As Eram Word
Dim Splaufzeit As Eram Word
Dim Laufzeit As Word
Dim Zeit As Word
Dim Minuten As Word
Dim Aktlaufzeit As Word
Dim Gesmuenz As Word
Dim A As Byte
Gesmuenz = Speicher
Laufzeit = Splaufzeit

Cursor Off
Locate 1 , 1
Lcd "Gesamt"
Locate 2 , 1
Lcd Gesmuenz
Do
Portc.2 = 1

If Pinb.1 = 0 Then
Gosub Incrlaufzeit
End If

If Pinb.2 = 0 Then
Gosub Decrlaufzeit
End If



If Pind.0 = 1 Then

Gesmuenz = Gesmuenz + 1
Speicher = Gesmuenz
Minuten = Laufzeit * 60
Aktlaufzeit = Minuten
Cls
Locate 1 , 1
Lcd "Gesamt"
Locate 2 , 1
Lcd Gesmuenz
Gosub Startzeit
End If

Loop




Startzeit:
Do
Decr Aktlaufzeit
Portc.1 = 1
Waitms 1044
If Aktlaufzeit =< 0 Then
Portc.1 = 0
Portc.2 = 0
Wait 1

End If
Loop Until Aktlaufzeit = 0

Return


Incrlaufzeit:

Cls
Incr Laufzeit
Locate 1 , 1
Lcd "Minuten"
Locate 2 , 1
Lcd Laufzeit
Waitms 500
Cls
Splaufzeit = Laufzeit
Locate 1 , 1
Lcd "Gesamt"
Locate 2 , 1
Lcd Gesmuenz

Return

Decrlaufzeit:

Cls
Decr Laufzeit
Locate 1 , 1
Lcd "Minuten"
Locate 2 , 1
Lcd Laufzeit
Waitms 500
Cls
Splaufzeit = Laufzeit
Locate 1 , 1
Lcd "Gesamt"
Locate 2 , 1
Lcd Gesmuenz

Return

Jaecko
12.11.2009, 18:54
Vermutlich hängt sich einer von beiden auf.
Kannst du an den Controller ne LED hängen? Dann könnte man die LED mal blinken lassen (nicht mit Timer, sondern über die Software direkt); Wenn das Display dann die Balken zeigt und die LED nichts mehr tut, wirds ein Controller-Problem sein.

Kann es sein, dass in dem Code auch ein "Loop" abgeht?
Zumindest ist da ein "Do" (Unter Startzeit:) zu viel.

Carlos31
12.11.2009, 20:25
hallo
Danke für deine schnelle antwort , ich hab 2 relais am ausgang von men atmega , die tun so wie es sein soll , die schalten ein und aus in den richtigen zeitpunkt , ich denke das es nicht abstürz aber werde das mit den led trotzdem ausprobieren.
das mit den do ist so das ich am ende ein loop until geschrieben hab , es tut mir leid das mein code nicht so aufgeräumt ist , kann es sein das ich der display falsch initialisiere ? , weil mein display verhaltet sich wie ein 8*2 diplay .

gruss Carlos

PICture
12.11.2009, 20:51
Hallo!

@ Carlos31

Es ist fast sicher so, wie du vermutest. Das kannst du im Datenblatt deines Displays noch überprüfen. Bei meisten 1x16 Displays ist die Zeile als 2x8 von Displaykontroller gesteuert und sie müssen wie zweizeilige initialisiert werden.

MfG

Jaecko
12.11.2009, 21:02
War das bei Bascom mit diesen Pseudo-2x8-LCDs nicht so, dass die mit
"Config Lcd = 16 * 1a" statt "Config Lcd = 16 * 1" initialisiert werden sollten?
(Würde auch zur Displaybezeichnung 161A passen)

Carlos31
15.11.2009, 12:18
hallo:
Vielen dank für die antworten , jetzt bin ich ein bischen weiter :-).
hab die ganze schaltung auf mein steckbrett aufgebaut und funktioniert wie es sein soll , mit mein original program , wenn ich die stromzufuhr von mein atmega weg nehme (um ein absturz zu simulieren) bleibt alles gleich mit mein lcd da ich vor den do loop der münzen gesamt drauf schreibe.
Die 2 schaltungen das probleme machen sind in ein rittal kasten eingebaut , hab die schaltung in ein rasterplatine aufgebaut und als sandwich mit abstandsbolzen hinter mein display befestigt , kann es sein das ich zu wenig zum entstöre benutze ? , hab 1 *100 nf kondensator für mein display und eins für mein atmega , mit meine 2 relais schalte ich 230 v.
kan es sein das ich gnd von meine schaltung mit erde verbinden muss ?
vielen dank für eure antworten in voraus

Carlos

Carlos31
15.11.2009, 19:47
hatt keiner eine idee ?