' 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 und (PinA.4 hab gelesen das könnte helfen)
Porta = &B11101101
' --------------------------------------------------------
'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
'schreibt (time$ an die Position, x , y , in Schriftart 2 , Breite normal , Höhe normal , in Schwarz , auf Weißem Hintergrund)
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 > 60 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
End If
Loop
End
' ########################################################
' --------------------------------------------------------
Sectic:
nop
Return
' --------------------------------------------------------
'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