Viide
Tegu on tarkvaraliste ja riistvaraliste viite tekitamise funktsioonide teegi osaga. Viite funktsioone välja kutsudes jääb programm neid ettenähtud ajaks täitma ja muu programmi, välja arvatud katkestuste, täitmine peatub.
Viitefunktsioonid pole eelnevalt kompileeritud, sest mikrokontrolleri taktsagedus võib erinevates rakendustes erineda. Need kompileeritakse iga kord uuesti.
Funktsioonid
void sw_delay_ms(unsigned short count)
Tarkvaraline viide millisekundites. Funktsiooni kasutamine eeldab kompilaatorilt optimeerimise kasutust. Parameetrid:
void sw_delay_us(unsigned short count)
Tarkvaraline viide mikrosekundites. Funktsiooni kasutamine eeldab kompilaatorilt optimeerimise kasutust. Parameetrid:
void hw_delay_ms(unsigned short count)
Riistvaraline taimeril põhinev viide millisekundites. Funktsioon kasutab ATmega128 8-bitist taimerit 0. Olenevalt taktsagedusest võib tekkida kuni mõne millisekundi suurune viga. Täpsema viite saaks teha 16-bitiste taimeritega, kuid neid on tavaliselt muuks otstarbeks vaja. Parameetrid:
Näide
Mõlemat liiki viitefunktsioonide kasutamise näide:
#include <homelab/delay.h>
int main(void)
{
// Tarkvaraline viide 100 ms
sw_delay_ms(100);
// Riistvaraline viide 100 ms
hw_delay_ms(100);
}