7.11.2 Tijd
De C-Control II unit beschikt over een interne real time – klok, die door aansluiting op een DCF77 –
actieve antenne tot op de seconde precies gesynchroniseerd kan worden. Bovendien kan de tijd ook in
het C2- programma ingesteld worden, en wel door het oproepen van de functie
function settime ( int hour, int minute, int second )
De deelwaarden van de actuele tijd (uur, minuut, seconde) kunnen door de volgende functies opgevraagd
worden:
function hour ( ) returns int
function minute ( ) returns int
function second ( ) returns int
Denk er aan, dat er bij het opvragen van de aparte functies een nieuwe minuut of uur kan aanbreken.
Gebruik daarom bij voorkeur de functie
Function gettime ( TIME time )
Deze functie geeft de volledige tijd in een blok in de als parameters ingevoerde datastructuur van het type
TIME weer:
type TIME
{
int hour;
int minute;
int second;
}
7.11.3 Status van de DCF77 – synchronisatie
Het besturingssysteem probeert op elke hele minuut de interne real-time klok te synchroniseren met het
ontvangen DCF77 – dataframe. Onder slechte ontvangstomstandigheden kan een synchronisatie langere
tijd duren. De interne real-time klok loopt dan kwarts -gestuurd door. Vanwege temperatuurinvloeden en
toleranties van de elektronische componenten leidt dit na langere tijd tot een toenemende tijdafwijking
van de interne klok. Om in het C2 – programma de actualiteit en precisie van de interne klok te taxeren,
kan via de functie dcferr een teller van het besturingssysteem opgevraagd worden, die het aantal
vergeefse synchronisaties weergeeft.
function dcferr ( ) returns int
Het terugzetten van de teller gebeurt bij elke correcte synchronisatie. Als er dan b.v. binnen 30 minuten
geen nieuwe synchronisatie mogelijk is, staat de teller op 30. Bij permanent uitvallen van de
synchronisatie wordt de teller op de waarde 32767 vastgehouden. Ook bij reset wordt de teller met deze
waarde ge nitialiseerd.
7.11.4 Datum
Met de DCF77 – synchronisatie wordt ook de datum van het systeem ingesteld. Als u de datum in het C2
– programma wilt manipuleren, gebruikt u de functie
function setdate ( int year, int month, int day )
Voor het opvragen van de afzonderlijke datuminformatie dienen de functies
function year ( ) returns it
function month ( ) returns it
function day ( ) returns it
function dow ( ) returns it
dow levert de dag van de week. Daarbij staat 0 voor zondag, 1 voor maandag enz. tot 6 voor zaterdag.
Overtuig u er bij het opvragen van de afzonderlijke datumwaarden van, dat er niet tussendoor een
dagwisseling (middernacht) kan optreden (vergelijk de broncode van de functie gettime).
66