User manual

165Compiler
© 2005 Conrad Electronic
5.4.17.12 Thread Beispiel 2
// multithread2: Multithreading mit Thread_Delay
// erforderliche Library: IntFunc_Lib.cc
void
thread1(
void
)
{
while
(
true
)
{
Msg_WriteText(str2); Thread_Delay(200);
}
// "Thread2" wird ausgegeben.
}
// Danach ist der Thread
// für 200ms "schlafend".
char
str1[12],str2[12];
// globale Variablendeklaration
//------------------------------------------------------------------------------
// Hauptprogramm
//
void
main(
void
)
{
str1="Thread1";
// Variablendeklaration
str2="Thread2";
// Variablendeklaration
Thread_Start(1,thread1);
// Funktionsaufruf mit Angabe der
// Threadnummer.
while
(
true
)
// Endlosschleife
{
Thread_Delay(100); Msg_WriteText(str1);
}
// Der Thread ist für 100ms "schlafend".
}
// Danach wird "Thread1" ausgegeben.
5.4.18 Timer
Es stehen im C-Control Pro Mega 32 zwei, Mega128 drei unabhängige Timer-Counter zur
Verfügung. Timer_0 mit 8 Bit und Timer_1 mit 16 Bit Timer_3 mit 16 Bit (nur Mega128). Timer_2
wird von der Firmware als interne Zeitbasis verwendet, und ist fest auf einen 10ms Interrupt
eingestellt. Mann kann die internen Timer für vielfältige Aufgaben einsetzen:
·
Ereigniszähler
·
Frequenzerzeugung
·
Pulsweitenmodulation
·
Timerfunktionen
·
Puls & Periodenmessung
·
Frequenzmessung
5.4.18.1 Ereigniszähler
Hier zwei Beispiele, wie die Timer als Ereigniszähler genutzt werden:
Timer0 (8 Bit)
// Beispiel: Pulszählung mit CNT0
Timer_T0CNT();