DCF77 Erst-Inbetriebnahme

Hallo Juro,

<Off Topic On>
Ja, das Modul von Reichelt ist heute angekommen und auch gleich wieder Retour gegangen... der Ferritkern war zweimal gebrochen...
Das Paket war auch echt "prima" gepackt ...
Und das bei Reichelt ?? Bei mir waren alle Pakete bis jetzt 1A verpackt. Noch
nie was defekt gewesen.
Im Gegensatz zu Pollin. Da sollte man sich hüten, Displays und Werkzeug
gleichzeitig zu bestellen :rolleyes: Wenn dann im Paket die Blechknabber
mit den Diplays Billiard spielt :mad: Zum Glück war an den Displays nix
kaputt. Fand ich aber trotzdem ziemlich mistig.

<Off Topic Off>

Gruß
Dino
 
Hallo Cassio,

ich habe eben noch mal deinen Code mit einer Kommentarzeile versehen, um die ganzen Zahlen in "Call LCD_print" - Befehl zu erklären. Ich hoffe es ist mir gelungen...:)

Deine Foto's habe ich eben auch mal angeguckt... ichkonnte alles erkennen, so schlecht sind sie nun auch nicht geworden...gute Idee, das über's Display anzuzeigen. Ach, hab mal auf die Uhrzeit deines Logs geguckt... da hätte ich auch keine tollen Bilder gemacht... ich glaube das nennt man "senile Bettflucht" :D

<Off Topic On>

Ich kann das nicht beurteilen, ich habe zum ersten Mal bei Reichelt bestellt. Das Modul war weder gut verpackt noch irgendwo festgeklebt. Aber ich glaube es war der dicke Katalog, der das Modul flach gemacht hat... Schade
Beim nächsten Mal klappt es bestimmt besser.

<Off Topic Off>

Grüße juro
 
...sorry, da hab ich wohl was vergessen...;)
Code:
         ' Juro - Cassio DCF77 - Testdatei Nr. 1
' #####################################

$regfile = "m128def.dat"
$crystal = 8000000

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


'zum Ansprechen des Display's
'PINB.7 ist für die Displaybeleuchtung (EIN/AUS)
Ddrb = &B11110110
Portb = &B00001001

' --------------------------------------------------------

'PinA.1 auf Ausgang alle anderen auf Eingang
Ddra = &B00000010
'Pull-up aktiviert ausser PinA.1
Porta = &B11111101

' --------------------------------------------------------
'um das Display zu Initialisieren ist diese Include-Datei notwendig
$include Init21_display3000.bas
'sagt dem Display welches Format
Orientation = Portrait180
' --------------------------------------------------------


' ########################################################
'test_dcf77.bas beginnt ab hier

Config Dcf77 = Pina.4 , Timer = 1 , Timer1sec = 1 , Debug = 1 , Update = 0 , Check = 1 , Inverted = 0 , Gosub = Sectic
' --------------------------------------------------------

Enable Interrupts
' --------------------------------------------------------

Config Date = Dmy , Separator = .
'Declare Function Dcf_timezone() As Byte

Time$ = "12:30:00"
Date$ = "28.02.09"
' --------------------------------------------------------

' Dim Sekunde As Integer
Dim Sekunde1 As String * 8

' Dim Tag As Integer
Dim Tag1 As String * 8

Dim Status As Byte , Status1 As String * 10

'Dim Parity As Byte , Parity1 As String * 10

'Dim Pause As Byte , Pause1 As String * 8

Dim Menge As Byte , Menge1 As String * 10

Dim Impuls As Byte , Impuls1 As String * 8

'Dim I As Integer
'Dim Sec_old As Byte , Dcfsec_old As Byte

'Sec_old = 99 : Dcfsec_old = 99

' --------------------------------------------------------
' Testroutine für die DCF77 Clock
Call Lcd_print( "Test DCF77 Version 1.02" , 0 , 0 , 2 , 1 , 1 , White , Dark_red)
Call Lcd_print( "Configuration" , 0 , 13 , 2 , 1 , 1 , White , Dark_red)


' ########################################################
Do
'Beleuchtung AUS
Portb.7 = 0

[COLOR="Red"]'schreibt (time$ an die Position, x , y , in Schriftart 2 , Breite normal , Höhe normal , in Schwarz , auf Weißem Hintergrund)
[/COLOR]
Call Lcd_print(time$ , 0 , 30 , 2 , 1 , 1 , Black , White)
Call Lcd_print(date$ , 0 , 45 , 2 , 1 , 1 , Black , White)

'   Sekunde = Time(dcf_sec)
'   Sekunde1 = Str(sekunde)
Sekunde1 = Time(dcf_sec)
Call Lcd_print(sekunde1 , 0 , 60 , 2 , 1 , 1 , Black , White)

'   Tag = Date(dcf_day)
'   Tag1 = Str(tag)
Tag1 = Date(dcf_day)
Call Lcd_print(tag1 , 0 , 75 , 2 , 1 , 1 , Black , White)

Status = Bin(dcf_status)
Status1 = Str(status)
Call Lcd_print(status1 , 0 , 100 , 2 , 1 , 1 , Black , White)

Impuls = Bdcf_impuls
Impuls1 = Str(impuls)
Call Lcd_print(impuls1 , 0 , 115 , 2 , 1 , 1 , Black , White)

Menge = Bin(dcf_bits)
Menge1 = Str(menge)
Call Lcd_print(menge1 , 0 , 130 , 2 , 1 , 1 , Black , White)


If Dcf_sec > 10 Then
   Reset Dcf_status.7
End If


' Kontrolle mit der LED
' 5V----->Vorwiderstand---->LED---------->PortA.1
If Dcf_status.7 = 1 Then
   Porta.1 = 0                                              'LED ein/zur Masse durchgeschaltet
Else
   Porta.1 = 1                                              'LED aus
End If

Loop
' ########################################################

' --------------------------------------------------------
Sectic:
  nop
Return

End

' --------------------------------------------------------
 'alles notwendig für's Display
$include Glcd21_display3000.bas
$include Glcd21_fonts.bas
'Dummy Data um Fehlermeldungen bei der Compilierung der Standardroutinen zu vermeiden
'Die Tabelle wird dann bei Nutzung eines indizierten Grafikdatei mit "echten" Daten ausgetauscht
Colortable:
Data 0
 
ich glaube das nennt man "senile Bettflucht" :D

Hallo Juro!

Nee nee, keine Sorge.... weder das Eine, noch das Andere. ;)


Ich hatte vorhin schon alle Beiträge nach dem kommentierten Code durchsucht.... aber nix gefunden. Dachte schon, ich bin Codedblind..... ;)
Nun hat es sich ja aufgeklärt. :)


Wieso musst du denn die Schriftart und dann noch mal die Höhe und Breite separat angeben? Sind nun verschiedene Fonts enthalten?

Dieser "Zahlencode" gilt aber nur für "Lcd_print", oder?
Zumindest setzt du nur die Startpunkte für X und Y. Eine Linie oder Box lässt sich damit dann nicht realisieren...... Musst du dass dann auf eine andere Art übergeben.... oder hat die Zahlenfolge dann nur eine andere Bedeutung?


Danke und schöne Grüße,
Cassio
 
Hallo Cassio,

ich hänge mal was an, dann werden deine Fragen besser beantwortet, als ich wenn ich das versuche...
Ich hab hier Schwierigkeiten mit dem Anhängen der Datei...
Kommt später...sorry

Ich quäle mich gerade mit dem Einbinden von Bildern oder besser mit dem Darstellen auf dem Display rum...:mad:

schöne Grüße
juro
 
..so nun hat es doch geklappt...
 

Anhänge

  • Display_S14_juro.pdf
    340,7 KB · Aufrufe: 21
  • Display_S15_juro.pdf
    364,8 KB · Aufrufe: 13
Hallo Juro!

So ein Mist.... da hatte ich einen riesen Text fertig und dann habe ich irgend eine dumme Tastenkombi gedrückt und.......
Schwamm drüber! ;)

Dann jetzt noch mal in Kurzform!

Vielleicht hilft es dir ja wenn ich dir den Tipp gebe, dass du dich an den Standartzeichen orientieren musst, um grafische Elemente schneller plaszieren zu können.

Die erste Zeit ist es ganz praktisch wenn du dir mal eine Hilfsdatei schreibst, in der später nur zwei Zahlen- oder Buchstabenreihen angezeigt werden.

Jedes Standartzeichen ist doch 6 Pixel breit und 8 Pixel hoch... oder haben die das geändert?

Sieh dir unten das Bild an.....

Wenn du die Box für das Dcf_status-Bit 2 plazieren möchtest, dann rechne einfach in "Zeichen".

Das erste Zeichen ist ein Leerzeichen, das Zweite ist die Zahl 2, das Dritte ist der Doppelpunkt.
Wenn du das zusammen rechnest, dann sind das 3 Zeichen x 6 Pixel = 18 Pixel.
Wenn du nun noch 2 Pixel Platz lässt, dann beginnt die Box bei 20 Pixel auf der X-Achse.
Genauso machst du das mit der Y-Achse und schon taucht die Box da auf, wo sie auch sein soll. ;)

War das soweit verständlich?


Viel Spaß beim Ausprobieren! :)

Cassio
 

Anhänge

  • IMG_0357.JPG
    IMG_0357.JPG
    58,3 KB · Aufrufe: 33
Hallo Cassio,

das habe ich schon verstanden und auch schon ausprobiert, bevor du geschrieben hast... deine letzten drei Bildchen haben mich dazu bewegt es mal auszuprobieren.
Kannst du mit deinem D062 auch grafiken aufs Display bringen? Bei mir gibt es da diesen GLCD Converter... Ich meine alles richtig zu machen, aber das Bild ist um ein paar Pixel verschoben oder gar nicht zu sehen... Naja, da muss ich wohl meine Wolke mit einem Edding auf das Display malen oder Punkt für Punkt programmieren...
Aber für heute geht die Kiste aus.

Danke für die Tipps.
Grüße juro
 
Hallo Juro!

Ja klar, das geht natürlich auch mit dem alten Modul.
Ist ja schließlich eine Softwaresache. ;)

Da das 1,5" Display allerdings nur 132x132 Pixel hat werden die Bilder dann eher zu Bildchen. ;)

Bis jetzt bin ich aber noch nicht in die Verlegenheit gekommen ein eigenes Bild zu konvertieren und rüber zu laden.... habe nur die Beispielbilder mal ausprobiert.
Kann ich aber mal probieren.


Wenn es so weiter geht, dann sollten wir einen zweites Thema speziell für die D072 und D062 Module erstellen.
Es passt sonst nicht mehr zur Überschrift der DCF77 Erst-Inbetriebnahme. ;)
Ich mach das mal. :)

Gruß,
Cassio
 
Guten Morgen Cassio,
prima Idee mit dem neuen Thema, dann brauchen wir nicht immer zu schwenken.

Danke und Grüße
Juro
 
Hallo ,

ich hab mir jetzt interessenhalber auch mal nen DCF77 von Pollin besorgt :D
Damit ich hier mitreden kann :rolleyes:

... und noch eins als Reserve (wenn mal wieder Grillfest ist) :eek:

Gruß
Dino
 
Hi Dino!

Och menno..... hättest du mal was gesagt....

Ich habe auch schon zwei Module und weiteren Kleinkram in meinem Warenkorb, aber irgendwie lohnt sich die Bestellung noch nicht so richtig.

Hättest ja meine paar Teile mitbestellen können und ich hätte sie mir bei Zeiten abgeholt...

Nun ja... dann vielleicht beim nächsten Mal. ;)


Also werde ich meine Bestellung morgen dann auch mal absenden... möchte ja auch mal ein Pollin-Modul ausprobieren. :D


Grandpa ? Dino? Hat einer von euch evtl. noch etwas vergessen zu bestellen.....? ;)


Gruß,
Cassio
 
Hi Thomas!

Recht hast du......
Darum habe ich ja auch ganz speziell Grandpa und Dino gefragt!

Da ich, wie in der Mitgliederkarte ersichtlich ist, so ziemlich in der Mitte von den beiden wohne und wir uns von zu Hause aus fast die Hände reichen können, macht das unter uns natürlich Sinn. ;)

Da Pollin mit den Versandkosten aber ganz human ist, lohnen sich Sammelbestellungen nicht wirklich. Es sein denn, jemand hat ein oder zwei Kleinigkeiten vergessen. :)


Gruß,
Cassio
 
Hallo ,

Da Pollin mit den Versandkosten aber ganz human ist, lohnen sich Sammelbestellungen nicht wirklich. Es sein denn, jemand hat ein oder zwei Kleinigkeiten vergessen. :)
Ich mußte heute leider gleich wieder was reklamieren :(
Das eine Display war an einer Stelle auskristallisiert. Hatte ich leider schon
mal bei den Displays.

Beim ersten mal hab ich ne Blechknabber mitbestellt und die flog mit den
Diplays ud dem Rest zusammen im Karton rum. Ein Blatt Packpapier reicht
wohl doch nicht.

Heute wie das Paket ankam, gleich aufgemacht und die Displays angesehen.
Schon wieder ... Diesmal haben sich die Displays gegenseitig angebumst.
Und eins hat es auf der Front erwischt. Wieder nur ein Blatt Packpapier drin.

Warum wickeln die die Displays eigentlich nicht nochmal einzeln in Packpapier
ein ? :confused: Ist das bei denen rationiert ? Also schicken die mir jetzt
schon wieder nen Ersatz. Zum Glück alles ziemlich streßfrei. Trotzdem
ärgerlich. Aber die scheinen ja genug davon zu haben um da so mit
umgehen zu können. Das mit dem Packpapier oder Noppenfolie hab ich denen
heute auch mal als Tip mitgegeben. Sie wollte es weitergeben. Na mal sehen.

Sind recht schöne Displays : 240x64 Pixel, Hintergrundbeleuchtung, ein
Grafikprozessor für das gesamte Display und kostet nur 9,95 :D
Mal sehen wann ich die zum laufen bekomme. Bestellt hab ich 4 Stk und
demnächst hab ich wegen Pollin 6 Stk (4 heile und 2 mit Pixeldefekten).
Aber zum Quellcode testen werden die wohl noch reichen.Sieht nur nicht
so schön aus, wenn man mitten in der Grafik nen fraktalen Pixelhaufen hat.
Apfelmännchen auf dem ATmega :eek: :rolleyes:

Achja ... das Teil heißt LM6270SYL (BestNr.120577)

Gruß
Dino
 
Hi Dino!

Ein paar LCDs wollte ich mir auch bestellen, aber die Dinger habe ich mich nicht rangetraut...... Habe nichts bei BASCOM dafür gefunden. ;)

Ich werde es mal mit dem hier probieren. Den Preis von 19,95 finde ich auch ganz OK!

Persönlich finde ich dieses hier ganz nett.
Stutzig macht mich nur der Preis.... also werde ich das Teil auch nicht zum laufen bekommen. ;)
Habe auch vom Controllerchip "SED1520DAA" und BASCOM noch nichts weiter gelesen. :hmmmm:


Dann brauchst du also nichts mehr von Pollin?

Gruß,
Cassio
 
Siehe hier :

Code:
'-----------------------------------------------------------------------------------------
'name                     : ks108.bas
'copyright                : (c) 1995-2005, MCS Electronics
'purpose                  : demonstrates the KS108 based graphical display support
'micro                    : Mega323
'suited for demo          : no
'commercial addon needed  : no
'-----------------------------------------------------------------------------------------

$regfile = "m323def.dat"                                    ' specify the used micro
$crystal = 8000000                                          ' used crystal frequency
$baud = 19200                                               ' use baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space


'some routines to control the display are in the glcdKS108.lib file
$lib "glcdKS108.lib"


Wait 2

Print "Config"                                              ' printing will still work as only the receiver pin is disabled


'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5

'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS1  Chip select
'CE2=CS2  Chip select second chip
'CD=Data/instruction
'RD=Read
'RESET = reset
'ENABLE= Chip Enable



'Dim variables (y not used)
Dim X As Byte , Y As Byte



Print "Cls"
Cls

Wait 1

'specify the font we want to use
Setfont Font8x8


'You can use locate but the columns have a range from 1-128
'When you want to show somthing on the LCD, use the LDAT command
'LCDAT Y , COL, value
Lcdat 1 , 1 , "123"

'lcdat accepts an additional param for inversing the text
Lcdat 2 , 1 , "123" , 1                                     ' will inverse the text

'Now use a different font
'Setfont Font8x8
'since the 16*16 font uses 2 rows, show on row 3
'Lcdat 1 , 1 , "2345"
'Lcdat 2 , 56 , "2345656"
Wait 1
Line(0 , 0) -(127 , 64) , 1                                 'make line
Wait 2
Line(0 , 0) -(127 , 64) , 0                                 'remove line

For Y = 1 To 20
   Circle(30 , 30) , Y , 1
   Waitms 100
Next

Wait 1
Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2                         ' both displays off
Wait 1
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2                         'both on
'GLCDCMD accepts an additional param to select the chip
'With multiple, GLCDCMD statements, it is best to specify the chip only the first time


Showpic 0 , 0 , Plaatje                                     'show a comnpressed picture
End                                                         'end program


'we need to include the font files
'Notice that this is a testfont with only numbers defined !
'$include "smallfont8x8.font"
$include "font8x8.font"
'$include "font16x16.font"


Plaatje:
'include the picture data
$bgf "ks108.bgf"

und da :

Code:
'I used a Staver to test
$crystal = 14745600
$baud = 115200
'--------------------------------------------------------------------
'                         SED1520.BAS
' demonstrates the SED1520 based graphical display support
'--------------------------------------------------------------------
'some routines to control the display are in the glcdSED.lib file
'IMPORTANT : since the SED1520 uses 2 chips, the columns are split into 2 of 60.
'This means that data after column 60 will not print correct. You need to locate the data on the second halve
'For example when you want to display a line of text that is more then 8 chars long, (8x8=64) , byte 8 will not draw correctly
'Frankly i find the KS0108 displays a much better choice.


$lib "glcdSED1520.lbx"


'First we define that we use a graphic LCD

Config Graphlcd = 120 * 64sed , Dataport = Porta , Controlport = Portd , Ce = 5 , Ce2 = 7 , Cd = 3 , Rd = 4


'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS  Chip Enable/ Chip select
'CE2= Chip select / chip enable of chip 2
'CD=A0   Data direction
'RD=Read

'Dim variables (y not used)
Dim X As Byte , Y As Byte


'clear the screen
Cls
Wait 2
'specify the font we want to use
Setfont Font8x8

'You can use locate but the columns have a range from 1-132

'When you want to show somthing on the LCD, use the LDAT command
'LCDAT Y , COL, value
Lcdat 1 , 1 , "1231231"
Lcdat 3 , 80 , "11"
'lcdat accepts an additional param for inversing the text
'lcdat 1,1,"123" , 1  ' will inverse the text

Wait 2
Line(0 , 0) -(30 , 30) , 1
Wait 2

Showpic 0 , 0 , Plaatje                                     'show a comnpressed picture
End                                                         'end program


'we need to include the font files
$include "font8x8.font"
'$include "font16x16.font"





Plaatje:
'include the picture data
$bgf "smile.bgf"

Thomas
 
Danke, Thomas!

Hattest mir im Chat ja schon geschrieben, dass beide Controller direkt von BASCOM unterstützt werden. :D


Dann kann ich ja jetzt meine Bestellung kompletieren......


Gruß,
Cassio
 
Hallo zusammen,

ich bin wohl doch zu doof...
Das Modul von Reichelt ist da und ich habe es auch schon ausprobiert, aber auch hier kein Erfolg. Da sitzt das Problem wohl davor:( :banghead:
Wenn ich das Modul mit der Kontroll-LED prüfe, bin ich der Meinung, dass das Blinken nicht immer gleich ist. Das war aber beim Pollin-Modul auch so.
Nun bin ich ein wenig ratlos...
Vielleicht hat ja jemand noch eine Idee?!

Gruß Juro
 
Hallo Juro!

Na endlich ist das neue Modul angekommen!

Dann kann es hier ja weiter gehen...... und ich dachte dabei nicht an Probleme! ;)

Hm, seltsam.... Die LED sollte eigentlich im Sekundentakt blinken und nicht irgendwie flackern oder ähnliches.
Das Signal wird jede Sekunde gesendet, darum muss die LED auch im Sekundentakt aufleuchten.

Wenn du dein Modul am D072 anschließt... und selbst wenn das Signal nicht einwandfrei empfangen werden sollte.... müssen die Sekunden der DCF_sec Variable zu laufen beginnen. Die DCF_sec-Sekunden stehen nur, wenn gar kein Funksignal empfangen wird, oder das Signal in deinem D072 nicht ankommt (drahtbruch, falscher Pin usw.).
Es ist auch erst mal egal ob die Sekunden zu schnell, zu langsam, oder "zu weit" (also über 60 hinaus) laufen.
Wichtig ist nur, dass die Sekunden überhaupt voran schreiten.
Das wäre zumindest ein Zeichen, dass die Signale auch am D072 ankommen.

Hast du denn diesmal die 5V am DCF77-Modul angeschlossen?

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)