This is an old revision of the document!
Kodulabori tarkvarapakett koosneb järgnevates osadest:
Kodulabori praktilised koodinäited on koostatud Kodulabori teegi (Homelab library) baasil. Teegis on ära kirjutatud enamkasutatavad AVR-i spetsiifilised operatsioonid ja moodulitega seotud protseduurid. See tähendab, et kasutaja ei pea moodulite kasutamiseks kirjutama riistvaralähedast programmikoodi, kuigi see võimalus on olemas. Riistvaraga suhtleva tarkvara eraldamine näidisprogrammidest võimaldab kasutajal lihtsamini keskenduda oma algoritmi loomisele. Tarkvara arhitektuur näeb välja järgmine:
Tase | Selgitus | Koht kus sisaldub |
---|---|---|
Rakendus | Kasutaja loodud- või näidisprogramm | Raamat |
Moodulite teek | Kodulabori moodulite käitlemise funktsioonid | Homelab library |
AVR riistvara teek | AVR mikrokontrolleri perifeeria funktsioonid | Homelab library |
AVR-LibC | AVR mikrokontrolleri registrite nimetused ja C standardteek | WinAVR |
AVR-GCC | AVR GCC kompilaator | WinAVR |
Iga tarkvara kiht sõltub alumisest. Kõige aluseks on AVR GCC kompilaator mis teisendab C keele programmikoodi AVR mikrokontrollerile arusaadavasse masinkoodi. Teisel kihil on AVR-i C keele standardfunktsioonide teek (inglise keeles library) mis sisaldab üldkasutatavaid funktsioone mäluhalduseks, tekstitöötluseks, andmeedastuseks, jms. Mis aga kõige olulisem – AVR-LibC sisaldab AVR registrite ja bittide nimelisi makro keele definitsioone. Ilma nendeta peaks kasutaja ise registritele vastavaid mäluaadresse teadma ja programmeerimine oleks palju keerulisem. AVR riistvara teek on Homelab library üks osa mis sisaldab funktsioone olulisema AVR perifeeria kasutamiseks (näiteks digitaalsed viigud, analoog-digitaal muundur, jne). Lisaks on selles teegis ka üldkasutatavad bititehete makro-funktsioonid ja tõeväärtus konstandid. Homelab library kõrgema osa moodustavad kodulabori moodulite kasutamise funktsioonid (näiteks ekraanide ja mootorite protseduurid). Kõige kõrgemal on tarkvara-arhitektuuri lõplik rakendus, mis on siis kas raamatu näidisprogramm või kasutaja enda rakendus. Rakenduses võib kasutada ükskõik millise alamtaseme tarkvara funktsionaalsust - ehk nagu öeldud see ei pea põhinema ainult kodulabori teegil.
Tutvumist vajab kodulabori teegi ja rakenduste (programmide) ülesehitus. Kuna paljudes näidisprogrammis eksisteerib sama funktsionaalsus (viikude operatsioonide, analoog-digitaal muundamine, jne) siis on korduvad programmilõigud kirjutatud teegi funktsioonidena, nii et neid saab mugavalt välja kutsuda ükskõik mis kohas ja mitu korda. Kodulabori teek on jagatud kodulabori moodulite ja/või alammoodulite järgi – igal mooduli kasutamiseks on oma funktsioonid. Moodulite funktsioonide nimed algavad nii nagu programmeerimisstiilgi ütleb - mooduli nimetusega.
Kodulabori teek moodustub mitmetest C programm- ja päisefailidest mida kasutaja saab oma projekti lisada. Raamatu kõik näited ja teek on saadaval digitaalse versioonina, mis moodustavad järgmise kataloogipuu:
Kõik Kodulabori näidisprogrammid on kirjutatud ühes stiilis, et programmikood oleks ülevaatlikum. Stiili peamised iseloomustused: