C Control PRO Unit Mega 128 198219 User Manual
![C Control](https://files.manualsbrain.com/attachments/daa52654d30223257b2f2345c46d5ccdd38253dc/common/fit/150/50/b7e2c94773d9bc49012576dd53a142e58fa4d841ac8ab4867887500834b3/brand_logo.gif)
Product codes
198219
367
C-Control Pro IDE
© 2013 Conrad Electronic
signal Wert des Signals
5.25.11 Thread Beispiel
// Demoprogramm zum Multithreading für Mega und AVR32
// Das Programm ist nicht entprellt, ein kurzes Tasten führt daher zu
// mehrfacher Ausgabe des Strings
#ifdef AVR32
#define PORT_SW1 PORT_T1
#define PORT_SW2 PORT_T2
#endif
#thread
0
,
0
,
10
// Hauptthread mit Task Wechsel alle 10 * 10ms =100ms
#thread
1
,
128
,
10
// Thread 1 mit 128 byte & Task Wechsel 10*10ms =100ms
void thread1(void)
{
while(true)
// Endlosschleife
{
if(!Port_ReadBit(PORT_SW2)) Msg_WriteText("Taster 2");
// SW2 gedrückt
}
}
void main(void)
{
#ifdef AVR32
// Pin jeweils auf Eingang & Pullup
Port_Attribute(PORT_T1, PORT_ATTR_INPUT | PORT_ATTR_PULL_UP);
Port_Attribute(PORT_T2, PORT_ATTR_INPUT | PORT_ATTR_PULL_UP);
#else
Port_DataDirBit(PORT_SW1, PORT_IN);
// Pin auf Eingang
Port_DataDirBit(PORT_SW2, PORT_IN);
// Pin auf Eingang
Port_WriteBit(PORT_SW1, 1);
// Pullup setzen
Port_WriteBit(PORT_SW1, 1);
// Pullup setzen
#endif
Thread_Start(
1
,thread1);
// Thread 1 starten
while(true)
// Endlosschleife
{
if(!Port_ReadBit(PORT_SW1)) Msg_WriteText("Taster 1");
// SW1 gedrückt
}
}