C Control Pro application board Mega 128 198258 User Manual
Product codes
198258
165
Compiler
© 2005 Conrad Electronic
5.4.17.12 Thread Beispiel 2
// multithread2: Multithreading mit Thread_Delay
// erforderliche Library: IntFunc_Lib.cc
// erforderliche Library: IntFunc_Lib.cc
void thread1(void)
{
while(true)
{
Msg_WriteText(str2); Thread_Delay(
{
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
//
// Hauptprogramm
//
void main(void)
{
str1=
{
str1=
"Thread1"
;
// Variablendeklaration
str2=
"Thread2"
;
// Variablendeklaration
Thread_Start(
1
,thread1);
// Funktionsaufruf mit Angabe der
// Threadnummer.
while(true)
// Endlosschleife
{
Thread_Delay(
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:
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:
·
·
·
·
·
·
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
();