User manual

108Compiler
© 2005 Conrad Electronic
char
str1[
12
],str2[
12
];
void
main(
void
)
{
str1=
"Taster 1"
;
str2=
"Taster 2"
;
Port_DataDir(PortD,
0
);
// Port D auf Eingang
Port_Write(PortD,
0xff
);
// Pullup für alle Eingänge setzen
Thread_Start(
1
,thread1);
// Thread 1 starten
while
(
true
)
// Endlosschleife
{
if
(!Port_ReadBit(
26
)) Msg_WriteText(str1);
// SW1 wurde gedrückt
}
}
5.3.15.10Thread Beispiel 2
// Demoprogramm für Multithreading mit Thread_Delay
void
thread1(
void
)
{
while
(
true
)
// Endlosschleife
{
Msg_WriteText(str2); Thread_Delay(
200
);
// Text wird alle 2 Sekunden
ausgegeben
}
}
char
str1[
12
],str2[
12
];
void
main(
void
)
{
str1=
"Thread1"
;
str2=
"Thread2"
;
Thread_Start(
1
,thread1);
// Thread 1 wird gestartet
while
(
true
)
// Endlosschleife
{
Thread_Delay(
100
); Msg_WriteText(str1);
// Text wird jede Sekunde
ausgegeben
}
}
5.3.16 Timer
Es stehen im C-Control Pro Mega 32 zwei unabhängige Timer-Counter zur Verfügung.
Timer_0
mit 8 Bit und
Timer_1
mit 16 Bit.
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