User manual

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 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 gedckt
}
}
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 gedckt
}
}