next up previous contents
Next: Askelmoottoreiden käsittely (stepper.c, stepper.h) Up: Rekisteröintiohjelmiston toteutus Previous: Rekisteröinti (aquir.c, aquir.h)

Reaaliaikakello (labtod.c, labtod.h)

Koska rekisteröinti sisältää ajoitusten suhteen kriittisiä toimenpiteitä, joudutaan monet keskeytykset kytkemään hetkellisesti pois päältä rekisteröintisovelluksen ajon aikana. Tästä johtuen PC:n oma kalenterikello ei pysy ajassa. LabMaster-kortti tarjoaa kuitenkin mahdollisuuden käyttää kahta ajoitinlaskuria reaaliaikakellona. LabMaster-kortin kellon käytössä on sekin etu, että kaikki ajoitukseen liittyvät toiminnot tapahtuvat LabMaster-kortin ohjaamina. Näin eri tahtiin käyvistä kelloista ei muodostu ongelmaa.

Tiedosto labtod.h sisältää moduulin määrittelemien funktioiden prototyypit ja tiedosto labtod.c funktioiden toteutuksen. Funktioita on viisi:

Sync_TOD
Tahdistetaan LabMaster-kortin reaaliaikakello PC:n reaaliaikakellon mukaan.
TOD_Sync
Tahdistetaan PC:n reaaliaikakello LabMaster-kortin reaaliaikakellon mukaan.
Read_TOD
Luetaan kellonaika LabMaster-kortin reaaliaikakellolta.
Write_TOD
Asetetaan LabMaster-kortin reaaliaikakello annettuun aikaan.
Wait_TOD
Odotetaan kellonaikaa, joka on parametrina annetun millisekuntimäärän ennen esimerkiksi seuraavaa tasaa tai puolta minuuttia. Odotettava kellonaika määräytyy moduulin global muuttujan G_sync_ms mukaan.

Funktiot käsittelevät LabMaster-kortin I/O-portteja suoraan moduulin util määrittelemien funktioiden avulla. Binäärilukujen ja BCD-koodattujen lukujen väliseen muunnokseen käytettävät makrot on määritelty moduulin labutil otsikkotiedostossa, mistä seuraa riippuvuus kyseisestä moduulista. Riippuvuus moduulista global johtuu funktion Wait_TOD toteutuksesta. Saman funktion toteutuksesta johtuen moduuli riippuu suoraan myös moduulista dataq. Funktio käyttää ajanhetken laskentaan kyseisen moduulin otsikkotiedostossa määriteltyä makroa TO_THS.


next up previous contents
Next: Askelmoottoreiden käsittely (stepper.c, stepper.h) Up: Rekisteröintiohjelmiston toteutus Previous: Rekisteröinti (aquir.c, aquir.h)
Antti Miettinen
9/3/1997

Valid HTML 3.2!