Allgemeines zu Contollermodule mit Farbdisplay (D062 + D072)

Cassio

Aktives Mitglied
29. Okt. 2008
4.027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo!

In diesem Bereich geht es um allgemeine Dinge für fertige Controllermodule mit farbigen Grafikdisplay.

Hier mal der Ausschnitt für ein Codebeispiel für ein kleines 1,5" Grafikdisplay.

Code:
Bgwt1 = Blau
Bgwt2 = Gelb
Bgwt3 = Rot

Ztag = Dayofweek()


' ------------------------------------------------------------------------------
Lcd_string = Date$                                          ' Datum im Header
Lx1 = 2
Ly1 = 1
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Time$                                          ' Zeit im Header
Lx1 = 14
Ly1 = 1
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 1
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Mo"                                           ' Wochentag
Lx1 = 2
Ly1 = 3
Fontsize = 0
If Ztag = 0 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 4
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Di"                                           ' Wochentag
Lx1 = 5
Ly1 = 3
Fontsize = 0
If Ztag = 1 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 7
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Mi"                                           ' Wochentag
Lx1 = 8
Ly1 = 3
Fontsize = 0
If Ztag = 2 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 10
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Do"                                           ' Wochentag
Lx1 = 11
Ly1 = 3
Fontsize = 0
If Ztag = 3 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 13
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Fr"                                           ' Wochentag
Lx1 = 14
Ly1 = 3
Fontsize = 0
If Ztag = 4 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 16
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Sa"                                           ' Wochentag
Lx1 = 17
Ly1 = 3
Fontsize = 0
If Ztag = 5 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 19
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "So"                                           ' Wochentag
Lx1 = 20
Ly1 = 3
Fontsize = 0
If Ztag = 6 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 22
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print
' ------------------------------------------------------------------------------
Lx1 = 1                                                     ' obere waagerechte
Ly1 = 28
Lx2 = 130
Ly2 = 28
Color = Blau
Gosub Lcd_draw

Lx1 = 1                                                     ' mittlere waagerechte
Ly1 = 71
Lx2 = 130
Ly2 = 73
Color = Blau
Gosub Lcd_box
Lx1 = 1                                                     ' mittlere weiße waagerechte
Ly1 = 72
Lx2 = 132
Ly2 = 72
Color = Weiss
Gosub Lcd_draw

Lx1 = 1                                                     ' untere waagerechte
Ly1 = 117
Lx2 = 130
Ly2 = 117
Color = Blau
Gosub Lcd_draw

' ------------------------------------------------------------------------------
Lx1 = 1                                                     ' linke Linie
Ly1 = 28
Lx2 = 1
Ly2 = 117
Color = Blau
Gosub Lcd_box

Lx1 = 64                                                    ' mittlere Linie
Ly1 = 28
Lx2 = 66
Ly2 = 117
Color = Blau
Gosub Lcd_box

Lx1 = 65                                                    ' mittlere weiße Linie
Ly1 = 26
Lx2 = 65
Ly2 = 118
Color = Weiss
Gosub Lcd_draw

Lx1 = 130                                                   ' rechte Linie
Ly1 = 28
Lx2 = 130
Ly2 = 117
Color = Blau
Gosub Lcd_box


' ------------------------------------------------------------------------------
Lcd_string = "DCF_sec"                                      ' DCF-sec
Lx1 = 3
Ly1 = 3
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Time(dcf_sec)
Lx1 = 2
Ly1 = 4
Fontsize = 1
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

' ------------------------------------------------------------------------------
Lcd_string = "Dcf_day"                                      ' Dcf_day
Lx1 = 14
Ly1 = 3
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Date(dcf_day)
Lx1 = 13
Ly1 = 4
Fontsize = 1
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

' ------------------------------------------------------------------------------
Lcd_string = "Sectic"                                       ' Sekundenpuls
Lx1 = 14
Ly1 = 6
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

' Sectic-Kästchen 16x16 siege oben !


If Puls = 1 Then
Lx1 = 92                                                    ' Box-Anzeige 12x12
Ly1 = 100
Lx2 = 104
Ly2 = 112
Color = Rot
Gosub Lcd_box
Else
Lx1 = 92                                                    ' Box-Anzeige 12x12
Ly1 = 100
Lx2 = 104
Ly2 = 112
Color = Weiss
Gosub Lcd_box
End If

' ------------------------------------------------------------------------------
Lcd_string = "Statusbit"                                    ' dcf_status
Lx1 = 2
Ly1 = 6
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = "2:"                                           ' dcf_status
Lx1 = 2
Ly1 = 7
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = "7:"                                           ' dcf_status
Lx1 = 7
Ly1 = 7
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print


If Dcf_status.2 = 1 Then
Lx1 = 21                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 27
Ly2 = 111
Color = Rot
Gosub Lcd_box
Else
Lx1 = 21                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 27
Ly2 = 111
Color = Weiss
Gosub Lcd_box
End If


If Dcf_status.7 = 1 Then
Lx1 = 51                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 57
Ly2 = 111
Color = Rot
Gosub Lcd_box
Else
Lx1 = 51                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 57
Ly2 = 111
Color = Weiss
Gosub Lcd_box
End If


' ------------------------------------------------------------------------------
Lcd_string = " Clock updates: "
Lx1 = 1
Ly1 = 16
Fontsize = 0
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

Sync_zs = Str(sync_z)
Sync_zs = Format(sync_zs , "00000")

Lcd_string = Sync_zs
Lx1 = 17
Ly1 = 16
Fontsize = 0
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print


Wie dieses Codestück dann auf dem Display aussieht, kann man im angehängten Bild sehen.

Gruß,
Cassio
 

Anhänge

  • IMG_0357-k.JPG
    IMG_0357-k.JPG
    157,2 KB · Aufrufe: 76
Hallo Cassio,

Ich hätte nicht gedacht, daß es so einfach ist. Damit hast Du zumindest mir eine Menge Zeit erspart.


Grüsse,

Michael
 
Hi Grandpa!

Schön dich zu lesen!

Gern geschehen, wenn ich dir damit Zeit erspart habe. :)


Prinzipiell ist es auch gar nicht schwierig.... nur eben aufwendiger, als ein DOT-Matrix LCD. ;)

Hin und wieder muss man auch auf die Reihenfolge der Boxen, Linien und Schriften achten, aber das war es eigentlich auch schon.


Schöne Grüße,
Cassio
 
Schön, dann brauche ich zu diesem Thema ja erstmal nichts lesen. Ich habe auch noch keins, sind mir (noch) zu teuer.

Grüsse,

Michael
 
Hallo,

so nun kann ich hier auch noch mit mischen...
Hat schon mal jemand bei einem dieser besagten Module eine Grafik auf's Display bekommen? Ich meine nicht die mitgelieferten sondern selbst erstellt...
Ich brech mir zur Zeit die Finger daran. Ich lade ein .gif in den mitgelieferten GLCD_Converter... dann kann man da diverse Einstellungen machen... dann convertiere ich das Ganze... nun speicher ich das als .bas - Datei... öffne diese schmeisse die besagten Zeilen raus und speicher erneut... nun wird beim compilieren unter anderem eine .bin - Datei erzeugt... diese binde ich dann in mein Programm ein und... :mad:
...entweder ist das Bild verschoben oder es ist nur eine Farbe zu sehen...
Ich denke eigentlich ich mache es nach Anweisung, aber irgendwie will es nicht funktionieren.
Hat jemand eine Idee?!:confused:

Grüße juro
 
Hallo zusammen,

...kleines Häckchen große Wirkung...
Nun habe ich eine kleine Sonne auf meinem Display.:D
Schön, wenn es dann doch klappt. Ich habe einfach mal den von Display3000 kontaktiert und er hat sofort geschrieben...

Gruß juro
Wir gehen jetzt ein dickes Stück Kuchen essen...:D :hello:
 
Hallo Juro!

Ich habe es eben auch mal probiert... allerdings kein zufriedenstellendes Ergebnis erhalten. :mad:

Das Bild wird zwar angezeigt, aber geteilt und irgendwie 45 Grad gedreht. :confused:


Was für ein Häkchen hast du denn gesetzt?


Gruß,
Cassio
 
Hallo Juro!

Nun habe ich es auch geschafft! :D

Allerdings nur mit der Call-Anweisung und noch nicht mit "Gosub".


Ich töffel hatte leider vergessen, das Bild VOR der Konvertierung auch in 256 Farben zu ändern..... :rolleyes:

Nun habe ich auch testweise eine lächelnde Tochter auf dem Display. ;)


Ich weiß aber immer noch nicht, welchen Haken du setzen oder entfernen musstest. :confused:


Gruß,
Cassio
 

Anhänge

  • tochter.jpg
    tochter.jpg
    72,2 KB · Aufrufe: 42
For i = 1 to 1000
? "Ich will das auch haben!"
next i
 
Hi Grandpa!

Ach, das sind doch zur Zeit alles nur Spielereien.
Warte mal ab, wenn alles fertig ist! :D

Du kannst dir das Modul ja bald in der Realität ansehen. ;)


Das D072 Modul reizt mich natürlich auch.... weil das Display doch um einiges größer und schärfer ist..... :)
Dafür ist der Preis aber auch ganz schön gepfeffert. :mad:

Gruß,
Cassio
 
Stimmt, 90€ sind ganz schön happig. Wie wär's mit einer größeren Sammelbestellung interesssierter Benutzer? Vielleicht geht dann ja was mit dem Preis...


Grüsse,

Michael
 
Hi Michael!

Die Idee mit der Sammelbestellung finde ich gar nicht mal so schlecht....

Das Problem ist nur, dass sich alle einig sein müssen....
Schießlich kann man die Module mit verschiedenen Optionen bestellen!

Können ja mal anfragen, ob er eine einmalige "Forscherversion" günstig verkaufen würde. ;)


Gruß,
Cassio
 
Hallöchen,

...ich hänge hier mal die Info's von dem netten Herrn von Display3000 ran.
Ich habe übrigens einen Link gefunden von dem man absolut legal Wettersymbole runterladen darf und auch benutzen darf... falls jemand Interesse hat...http://www.limmattalerwetter.ch/Wettericons.html

Na, da hab ich ja was angerichtet mit den Grafiken...
Ich muss ganz schön aufpassen, dass ich jetzt nicht das Wesentliche meiner Wetterstation aus den Augen verliere und nur noch an den Bildchen bastle...

Aber ist doch prima dein Bild von deiner Tochter... auch ohne/mit Haken.

So ich werde jetzt mal die Beine hochlegen und den lieben Gott einen guten Mann sein lassen... Sohnemann schläft auch gleich...hoffe ich:) ;)

Bis morgen
Grüße an alle Nachtschwärmer von
juro
 
Hi Cassio,

Das Problem ist nur, dass sich alle einig sein müssen....
Schießlich kann man die Module mit verschiedenen Optionen bestellen!
Für mein Verständnis ist das Angebot doch vielfältig einsetzbar. Über die RS232 "einfach nur" anzeigen lassen...Und eigene Bilder funktionieren anscheinend doch auch...


Grüsse,

Michael
 
Hi Juro!

Also irgendwie kann ich dein angehängtes Bild nicht nachvollziehen.....
So etwas habe ich nicht und kenne ich auch nicht.

Kann aber auch sein, dass dein Konvertierungstool neuer und umfangreicher ist als meins. ;)

Dann machen wir also hinter dem Häkchen mal einen Haken. :D



Für mein Verständnis ist das Angebot doch vielfältig einsetzbar. Über die RS232 "einfach nur" anzeigen lassen...Und eigene Bilder funktionieren anscheinend doch auch...

Hallo Michael!

Nein, ich meinte die Optionen vom Modul.... 8MHz, 14,xxxMHz, oder 16MHz Quarz, mit oder ohne Uhrenquarz, mit CAN oder ohne und und und.

Es würde also keinen Sinn machen, wenn man zig verschiedene Versionen anfragen würde. ;)

Gruß,
Cassio
 
Hallo,

ich habe das oben mal aus dem Word-Dokument von juro raus kopiert :

Hallo Frau Roth,

ohne das eigentliche bild kann ich nicht viel sagen, aber ich sehe 2 Fehler:

a) Die Grafik ist 40x40 Pixel groß, also darf es nur heißen
lcd_bitmap (0,0,39,39) und nicht 40,40

b) Color Table Representation soll auf "Word" stehen. Wenn Sie BIN Dateien abspeichern, brauchen Sie keine Werte manuell ändern, da diese sowieso nicht mit abgespeichert werden (solange die Option abgeschaltet ist - so wie im der beigefügten abgebildeten Dialogbox unten rechts).

Dann sollte es klappen !

So braucht man nicht jedesmal das doofe Office öffnen.

Thomas
 
Hallo Thomas!

Danke schön, für die Hilfe!

Hatte mir noch gar nicht die Mühe gemacht mein OpenOffice mit einem Word-Dokument zu quälen. ;)

Wie ich aber an dem Bild schon gesehen habe, ist mein Konverter wesentlich simpler...... und vermutlich älter.
Dort gibt es diese Einstellungsmöglichkeiten überhaupt nicht.

Manchmal ist es eben einfacher, wenn man nicht so viele Möglichkeiten hat. ;)

Gruß,
Cassio
 
Ich töffel hatte leider vergessen, das Bild VOR der Konvertierung auch in 256 Farben zu ändern..... :rolleyes:

Hallo !

Das war aber scheinbar nicht der Fehler, warum mir ein schräges und geteiltes Bild angezeigt wurde.

Wenn man sich auch nur 1 Pixel bei der Darstellung verrechnet, verschieben sich natürlich die Daten und das Bild wird versetzt auf das Display erzeugt.
Dadurch entsteht ein schräges und geteiltes Bild.

Ist eine Grafik 108 Pixel breit und beginnt bei X1=12.... dann ist das letzte Pixel natürlich X2=119..... und nicht 120. ;)


Für alle die sich also mal wundern, warum ihre Grafik so verzerrt angezeigt wird.......
Rechnet einfach noch mal genau nach! ;)

Soweit also dazu...

Cassio
 
Hallo zusammen!

Boah, ich werde hier gerade wahnsinnig!

Ich stell mal einen Auszug aus meinem Programm hier ein......
Obwohl ich ja nicht glaube, dass es daran liegt!


Worum geht es?
Das Programm zeigt mir nach dem Start alle wichtigen Daten zu DCF77 an und aktualisiert auch die Softclock!
Funktioniert auch schon seit Tagen wunderbar (habt ihr vielleicht schon mitbekommen ;) ).

Gestern habe ich das Program etwas geändert, so dass es mir beim Betätigen des Tasters PINF.1 das Bild meiner Tochter für 10 Sekunden anzeigt.
Klappt auch wunderbar.

Wenn die Subroutine dann wieder verlassen wird und die normale Anzeige auf Uhr, Datum und DCF-Werte zurück springt, ist alles weg.
Alles steht auf Null und die Software muss sich erst wieder alle Daten vom DCF77-Signal holen. :confused:

Sorry, aber ich komm einfach nicht drauf.
Hat das etwas mit Hard-, Softwarestack und der Framesize zu tun?
Ich habe die ja schon auf 128 stehen..... sollte ich da noch mal höher ran gehen?

Datt olle Modul rescht mich langsam uff! :banghead:


Hier nun der Auzug aus meinem Programm.
(Aus Lizensgründen werden die Anweisungen für das Display heraus gelassen!)

Code:
'
$regfile = "m128def.dat"
$crystal = 16000000

$hwstack = 128
$swstack = 128
$framesize = 128


'###############################################################################

' Hier stehen sonst nur die Zeilen für die Displayansteuerung drin!

'###############################################################################

Dim Bgwt1 As Byte , Bgwt2 As Byte , Bgwt3 As Byte , Ztag As Byte  'Hintergrundfarben und Zahl des Wochentages

Dim Ias As String * 10 

Dim Puls As Bit                         
Dim Iz As Byte , Ia As Bit
Dim Sig_bit As Byte , Sync_z As Word , Sync_zs As String * 5


' Bestimme die Ein und Ausgänge
Ddrf = &B1100_0000                                          '1 ist Ausgang 0 ist Eingang
Portf = &B0011_1111                                         'auf Hi oder Low setzen

Ddra = &B1000_0000
Porta = &B0111_1111


Config Dcf77 = Pinf.0 , Timer = 1 , Timer1sec = 1 , Debug = 1 , Update = 0 , Check = 1 , Inverted = 0 , Gosub = Sectic

Config Date = Dmy , Separator = .

Enable Interrupts

Date$ = "01.01.07"
Time$ = "12:00:00"

Gosub Lcd_init

'###############################################################################
'###############################################################################
'###############################################################################

'-------------------------------------------------------------------------------
'Hauptprogramm
'-------------------------------------------------------------------------------
Gosub Lcd_cls

Lx1 = 90                                                    ' Sectic-Kästchen 16x16
Ly1 = 98
Lx2 = 106
Ly2 = 114
Color = Blau
Gosub Lcd_box

Lx1 = 20                                                    ' Status-Kästchen
Ly1 = 98
Lx2 = 28
Ly2 = 112
Color = Blau
Gosub Lcd_box

Lx1 = 50                                                    ' Status-Kästchen
Ly1 = 98
Lx2 = 58
Ly2 = 112
Color = Blau
Gosub Lcd_box


Do

If _sec = 0 Then
   If Dcf_status.7 = 1 Then
   Sig_bit = 1                                              ' Status 1 wenn mit DCF synchronisiert
   Else
   Sig_bit = 0
   End If
Else
End If


If Sig_bit = 1 Then                                        'Port nur togglen wenn synchronisiert wurde
Portf.7 = Puls
Else
Portf.7 = 1
End If


If Dcf_status.7 = 1 Then
   If _sec > 0 Then
      If Sync_z < 65535 Then
      Incr Sync_z                                       ' zählen der Synchronisierungen
      Else
      Sync_z = 0
      End If
   Reset Dcf_status.7
   Else
   End If
Else
End If

Gosub Layout 

Debounce Pinf.1 , 0 , Bild_anzeigen

Loop



' ##############################################
Sectic:
Toggle Puls
Return
' ##############################################


'###############################################################################
Bild_anzeigen:
Gosub Lcd_cls

Restore Tochter                 ' konvertiertes Bild als Datazeilen im EEprom abgelegt
Lx1 = 12
Ly1 = 0
Lx2 = 119
Ly2 = 131
Gosub Lcd_bitmap                           
Wait 10
Return

'###############################################################################

Layout:                                                     'Layout

Bgwt1 = Blau
Bgwt2 = Gelb
Bgwt3 = Rot

Ztag = Dayofweek()


' ------------------------------------------------------------------------------
Lcd_string = Date$                                          ' Datum im Header
Lx1 = 2
Ly1 = 1
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Time$                                          ' Zeit im Header
Lx1 = 14
Ly1 = 1
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 1
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Mo"                                           ' Wochentag
Lx1 = 2
Ly1 = 3
Fontsize = 0
If Ztag = 0 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 4
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Di"                                           ' Wochentag
Lx1 = 5
Ly1 = 3
Fontsize = 0
If Ztag = 1 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 7
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Mi"                                           ' Wochentag
Lx1 = 8
Ly1 = 3
Fontsize = 0
If Ztag = 2 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 10
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Do"                                           ' Wochentag
Lx1 = 11
Ly1 = 3
Fontsize = 0
If Ztag = 3 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 13
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Fr"                                           ' Wochentag
Lx1 = 14
Ly1 = 3
Fontsize = 0
If Ztag = 4 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 16
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "Sa"                                           ' Wochentag
Lx1 = 17
Ly1 = 3
Fontsize = 0
If Ztag = 5 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 19
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print

Lcd_string = "So"                                           ' Wochentag
Lx1 = 20
Ly1 = 3
Fontsize = 0
If Ztag = 6 Then
Lcd_fcolor = Bgwt3
Lcd_bcolor = Bgwt2
Else
Lcd_fcolor = Bgwt2
Lcd_bcolor = Bgwt1
End If
Gosub Lcd_print

Lcd_string = " "                                            ' Leerzeichen
Lx1 = 22
Ly1 = 3
Fontsize = 0
'Lcd_fcolor = Blau
Lcd_bcolor = Blau
Gosub Lcd_print
' ------------------------------------------------------------------------------
Lx1 = 1                                                     ' obere waagerechte
Ly1 = 28
Lx2 = 130
Ly2 = 28
Color = Blau
Gosub Lcd_draw

Lx1 = 1                                                     ' mittlere waagerechte
Ly1 = 71
Lx2 = 130
Ly2 = 73
Color = Blau
Gosub Lcd_box
Lx1 = 1                                                     ' mittlere weiße waagerechte
Ly1 = 72
Lx2 = 132
Ly2 = 72
Color = Weiss
Gosub Lcd_draw

Lx1 = 1                                                     ' untere waagerechte
Ly1 = 117
Lx2 = 130
Ly2 = 117
Color = Blau
Gosub Lcd_draw

' ------------------------------------------------------------------------------
Lx1 = 1                                                     ' linke Linie
Ly1 = 28
Lx2 = 1
Ly2 = 117
Color = Blau
Gosub Lcd_box

Lx1 = 64                                                    ' mittlere Linie
Ly1 = 28
Lx2 = 66
Ly2 = 117
Color = Blau
Gosub Lcd_box

Lx1 = 65                                                    ' mittlere weiße Linie
Ly1 = 26
Lx2 = 65
Ly2 = 118
Color = Weiss
Gosub Lcd_draw

Lx1 = 130                                                   ' rechte Linie
Ly1 = 28
Lx2 = 130
Ly2 = 117
Color = Blau
Gosub Lcd_box


' ------------------------------------------------------------------------------
Lcd_string = "DCF_sec"                                      ' DCF-sec
Lx1 = 3
Ly1 = 3
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Time(dcf_sec)
Lx1 = 2
Ly1 = 4
Fontsize = 1
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

' ------------------------------------------------------------------------------
Lcd_string = "Dcf_day"                                      ' Dcf_day
Lx1 = 14
Ly1 = 3
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = Date(dcf_day)
Lx1 = 13
Ly1 = 4
Fontsize = 1
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

' ------------------------------------------------------------------------------
Lcd_string = "Sectic"                                       ' Sekundenpuls
Lx1 = 14
Ly1 = 6
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

' Sectic-Kästchen 16x16 siehe oben !


If Puls = 1 Then
Lx1 = 92                                                    ' Box-Anzeige 12x12
Ly1 = 100
Lx2 = 104
Ly2 = 112
Color = Rot
Gosub Lcd_box
Else
Lx1 = 92                                                    ' Box-Anzeige 12x12
Ly1 = 100
Lx2 = 104
Ly2 = 112
Color = Weiss
Gosub Lcd_box
End If

' ------------------------------------------------------------------------------
Lcd_string = "Statusbit"                                    ' dcf_status
Lx1 = 2
Ly1 = 6
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = "2:"                                           ' dcf_status
Lx1 = 2
Ly1 = 7
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print

Lcd_string = "7:"                                           ' dcf_status
Lx1 = 7
Ly1 = 7
Fontsize = 1
Lcd_fcolor = Blau
Lcd_bcolor = Weiss
Gosub Lcd_print


If Dcf_status.2 = 1 Then
Lx1 = 21                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 27
Ly2 = 111
Color = Rot
Gosub Lcd_box
Else
Lx1 = 21                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 27
Ly2 = 111
Color = Weiss
Gosub Lcd_box
End If


If Dcf_status.7 = 1 Then
Lx1 = 51                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 57
Ly2 = 111
Color = Rot
Gosub Lcd_box
Else
Lx1 = 51                                                    ' Status-Kästchen
Ly1 = 99
Lx2 = 57
Ly2 = 111
Color = Weiss
Gosub Lcd_box
End If

' ------------------------------------------------------------------------------
Lcd_string = " Clock updates: "
Lx1 = 1
Ly1 = 16
Fontsize = 0
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print

Sync_zs = Str(sync_z)
Sync_zs = Format(sync_zs , "00000")

Lcd_string = Sync_zs
Lx1 = 17
Ly1 = 16
Fontsize = 0
Lcd_fcolor = Rot
Lcd_bcolor = Weiss
Gosub Lcd_print                                            
' ---------------------------------------------------------------------------

Return                             ' Layout Ende !
'###############################################################################

Hier kommen dann die Displayroutinen.......



So, und wo ist nun der Fehler? :confused:


Gruß,
Cassio
 
Hallo !

Ich habe nun mal das Bild meiner Tochter entfernt und einfach nur ein kleines Untermenü geschrieben.
Dieses Untermenü wird auch mittels Debounce aufgerufen und zeigt lediglich die Pinzustände des Ports F an.

Wenn ich danach zurück in mein Hauptprogramm möchte sieht es so aus, als würde ein RESET durchgeführt. :confused:
Zumindest sind danach wieder alle Werte auf NULL ! :mad:


Ich raff das nicht! :banghead:


Gruß,
Cassio
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)