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);
}
}
char str1[12],str2[12];
//-------------------------------------------------------------------------
// Hoofdprogramma
//
void main(void)
{
str1="Thread1";
str2="Thread2";
Thread_Start(1,thread1);
while(true)
{
Thread_Delay(100); Msg_WriteText(str1);
}
}
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();
165
// "Thread2" wordt gegeven.
// Daarna "slaapt"de thread
// voor 200ms.
// globale variablendeclaratie
// Variablendeclaratie
// Variablendeclaratie
// Functie- oproep met aangeven van de
// threadnummer.
// Eindeloze lus
// De thread os "slapend" voor 100ms.
// Daarna wordt "Thread1" uitgevoerd.