C Control PRO Unit Mega 128 198219 User Manual

Product codes
198219
Page of 429
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
    }
}