User manual
165
5.4.17.12
Thread voorbeeld 2
// multithread2: Multithreading met Thread_Delay
// benodigde Library: IntFunc_Lib.cc
void thread1(void)
{
while(true)
{
Msg_WriteText(str2); Thread_Delay(200);
} // "Thread2" wordt gegeven.
} // Daarna “slaapt”de thread
// voor 200ms.
char str1[12],str2[12];
// globale variablendeclaratie
//-------------------------------------------------------------------------
// Hoofdprogramma
//
void main(void)
{
str1="Thread1"; // Variablendeclaratie
str2="Thread2"; // Variablendeclaratie
Thread_Start(1,thread1); // Functie- oproep met aangeven van de
// threadnummer.
while(true)
// Eindeloze lus
{
Thread_Delay(100); Msg_WriteText(str1);
} // De thread os “slapend” voor 100ms.
} // Daarna wordt "Thread1" uitgevoerd.
5.4.18 Timer
Er staan in de C-Control Pro Mega 32 twee , Mega128 drie onafhankelijke Timer-Counters
ter beschikking: Timer_0 met 8 bit en Timer_1 met 16 Bit en Timer_3 met 16 Bit (alleen
Mega128). 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.4.18.1 Teller van gebeurtenissen
Hier twee voorbeelden hoe de timer als teller van gebeurtenissen gebruikt worden:
Timer0 (8 Bit)
/ / Voorbeeld: pulstelling met CNT0
Timer T0CNT();