User manual

103
Thread_Start(1,thread1); / / Thread 1 starten
while(true) / / Eindeloze lus
{
if ( ! Port _ReadBit (26) ) Mag_WriteText (str1); / / SW1 werd ingedrukt
}
}
5.3.15.10 Thread voorbeeld 2
/ / Demoprogramma voor multithreading met Thread_Delay
void thread1(void)
{
while(true) / / eindeloze lus
{
Mag_WriteText(str2); Thread_Delay(200); / / tekst wordt elke 2 sec uitgevoerd
}
}
char str1[12],str2[12];
void main(void)
{
str1=Thread1“;
str2=Thread2“;
Thread_Start(1,thread1); / / Thread 1 wordt gestart
while(true) / / eindeloze lus
{
Thread_Delay(100); Msg_WriteText(str1); / / tekst wordt elke seconde uitgevoerd
}
}
5.3.16 Timer
Er staan in de C-Control Pro Mega 32 twee onafhankelijke Timer-Counters tot uw
beschikking: Timer_0 met 8 bit en Timer_1 met 16 Bit. Timer_2 wordt door de firmware als
interne tijdbasis gebruikt, en is vast ingesteld op een 10ms interrupt. U kunt de interne timers
voor veelvuldige opgaven inzetten:
Teller van gebeurtenissen
Produceren van frequenties
Pulsbreedte -modulatie
Timerfuncties
Puls - & periodemeting
Frequentiemeting
5.3.16.1
Teller van gebeurtenissen
Hier twee voorbeelden hoe de timers als teller van gebeurtenissen gebruikt worden:
Timer0 (8 Bit)
/ / Voorbeeld: pulstelling met CNT0
Timer T0CNT();
pulse(n); / / n pulsen genereren
count=Timer T0GetCNT();