Stap 6: Het programma
Hier vindt u de tiny basic programma dat de klok drijft.De ontvangst van het signaal van de tijd zal automatisch gedaan worden op de achtergrond door een routine van de firmware.
'********************************************************************
'
' C-controle/BASIC BinUhr.BAS
'
' Systeemvereisten:
'
'-Toepassing Board aangesloten op netspanning stuurprogramma moederbord
'
' Gebruik:
'
'-Output van binaire geconverteerde tijd om NEON lampen
'
'********************************************************************
' *** Gegevens definiëren ***
' variabelen voor uren
define Stunde08 byte
define Stunde04 byte
define Stunde02 byte
define Stunde01 byte
' variabelen voor minuten
define Minute32 byte
define Minute16 byte
define Minute08 byte
define Minute04 byte
define Minute02 byte
define Minute01 byte
' Poorten uur
define s8 poort [1]
define s4 poort [2]
define s2 poort [3]
definiëren van s1 poort [4]
' Poorten minuten
definiëren van m32 poort [5]
define m16 poort [6]
define m8 poort [7]
definiëren van m4 poort [8]
define m2 poort [9]
define m1 poort [10]
' Port seconds
define sg1 poort [11]
define sg2 poort [12]
' Port teek Tack (tikkende geluid met estafette)
define tt poort [13]
' speciale variabelen
define temp byte
define tempTime byte
define LastSecond byte
' Stel seriell port2400 n 8 1
BAUD R2400
' Stel seconden en Ticktack
SG1 = 0
sg2 = 1
TT = 0
' Hoofdprogramma
#loop
wachten op tweede <> LastSecond
' tweede lampen en relais in-/ uitschakelen
tog sg2
tog sg1
tog tt
LastSecond = tweede
GOSUB BuildBinTime
GOSUB WriteTime
GOSUB serout
goto lus
#BuildBinTime
'
' uren
' Uur converteren naar binaire indeling met de mod opdracht, 24-uurs formaat converteren naar 12h indeling
Als uur > 12 dan tempTime = uur - 12 anders tempTime = uur
Stunde08 = tempTime / 8
Temp = tempTime mod 8
Stunde04 = temp / 4
temp temp mod 4 =
stunde02 = temp / 2
temp temp modulo 2 =
Stunde01 = temp
'
'Notulen'
' Converteren van minuten naar binaire indeling met mod opdracht
Minute32 = minuut / 32
Temp = minuut mod 32
Minute16 = temp / 16
temp temp mod 16 =
Minute08 = temp / 8
temp temp mod 8 =
Minute04 = temp / 4
temp temp mod 4 =
Minute02 = temp / 2
temp temp modulo 2 =
Minute01 = temp
Terugkeer
' Schrijf geconverteerde tijd om bollen
#WRITETIME
' Stunden
S8 = stunde08
S4 = stunde04
S2 = stunde02
S1 = stunde01
' Minuten
M32 = Minute32
M16 = Minute16
M8 = Minute08
M4 = Minute04
m2 = Minute02
M1 = Minute01
terugkeer
' Geconverteerde tijd en werkelijke tijd naar serout schrijven
#SerOut
Print "8", "4", "2", "1", "", "32", "16", "8", "4", "2", "1"
Afdrukken van Stunde08, Stunde04, Stunde02, Stunde01,"", Minute32, Minute16, Minute08, Minute04, Minute02, Minute01
Print uur, minuut
keren