Die Idee mit dem max232 war sehr gut.
Betreibe jetzt eines dieser Displays an einem Atmega 8 zu Testzwecken.
Ich lasse nur eine Softclock laufen und will sie mit 2 Tastern einstellen können.
Jetzt habe ich aber folgendes Problem:
Die Uhr läuft wunderbar, jedoch lässt sie sich nicht fehlerfrei einstellen. D.h. beim einstellen ist es immer eine Glückssache welche Zahl erscheint, weil die Zahlen viel zu schnell hochlaufen. Woran kann das liegen?
An XTAL hängt ein 32.xxx Quarz und der interne Oz ist auf 1 Mhz gesetzt.
Hier das Programm:
Noch eine andere Frage:Code:$regfile = "m8def.dat" Enable Interrupts Config Date = Mdy , Separator = / Config Clock = Soft Config Portc = Input Config Graphlcd = 240 * 64 , Dataport = Portd , Controlport = Portb , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8 Cls Cursor Off Portc.0 = 1 'Taster1, Zeit/Datum stellen, PullUp ein, schaltet gegen Minus Portc.3 = 1 'Taster2, Zahl hochzählen, PullUp ein, schaltet gegen Minus Time$ = "00:00:00" 'Setzen auf Startwert Date$ = "00/00/00" 'Setzen auf Startwert Do Locate 1 , 1 Lcd Time$ 'Zeige Zeit in Zeile1 If Pinc.0 = 0 Then Gosub Time 'wiederhole Anzeige bis Taster 1 zum Stellen gedrückt, springe nach Sub "Time" Loop End 'Stunde Time: Waitms 200 Cls 'lösche Zeilen Do Locate 1 , 1 Lcd "Set Hour:" 'Stunden setzen Locate 2 , 1 Lcd _hour If Pinc.3 = 0 Then 'Mit Taster 2 Incr _hour 'hochzählen Locate 2 , 1 Lcd _hour End If If _hour > 23 Then 'Zählt bis Max, danach wieder ab 0 Cls _hour = 00 End If 'solange, bis Taster 1 gedrückt Loop Until Pinc.0 = 0 Waitms 200 'Minute Cls Do Locate 1 , 1 Lcd "Set Minute:" Locate 2 , 1 Lcd _min If Pinc.3 = 0 Then Incr _min Locate 2 , 1 Lcd _min End If If _min > 59 Then Cls _min = 00 End If Loop Until Pinc.0 = 0 Waitms 200 Cls Return
Der Befehl "locate" setzt ja den Cursor auf eine bestimmte Zeile und Spalte. Aber es ja nicht die genaue Pixelzeile und spalte.
Z.B. möchte ich ganz oben im Display eine Linie angezeigt kriegen und darunter erst den Text mit "locate". Sage ich aber Locate 2 , 1 : Lcd "Es klingelt!" erscheint der Text einige Zeilen weiter runter.
Besteht auch die Möglichkeit eine genaue Zeile und Spalte mit Text anzusteuern?
Und die letzte Frage wäre:
Cls löscht ja das ganze Display. Gibt es auch eine Möglichkeit nur bestimmte Zeilen oder Stellen des Displays zu löschen?
Gibt es verschiedene Schriftarten bzw Größen die ich übertragen kann?
Was bedeutet das Mode?
Möchte z.B. einen Balken für die Spannung anzeigen, der bei weniger Spannung fällt. Wie ginge das am besten?







Zitieren

Lesezeichen