static void LedFlash() { if (uiDelayMode > 0) { Tuint08 uiDM = uiDelayMode; uiLedMode=3; setChannel(pinLEDbeacon,false); while (uiDM-- > 0) { setChannel(pinLEDsignal,true); taskDelayFromNow(200); setChannel(pinLEDsignal,false); taskDelayFromNow(200); } } }
/* The write task writes number into the queue in series of 8, as long as * space allows for. The numbers written are displayed. When the queue * cannot be obtained, a wait led starts flashing until a new attempt is * done. */ void appLoop_WriteTask(void) { Tuint08 count = 0; while (true) { if (taskQueuWriteRequestOnName(ThePipe,8,800)) { for (count=0; count<8; count++) { genQueuWriteOnName(ThePipe,count); setNumber(0xF0,count); taskDelayFromNow(600); } taskQueuReleaseOnName(ThePipe); } else { for (count=0; count<10; count++) { invLed(3); taskDelayFromNow(80); } } } }
/* The read task reads numbers from the queue in series of 6, as long as * numbers are available. The numbers read are displayed. When the queue * cannot be obtained, a wait led starts flashing until a new attempt is * done. */ void appLoop_ReadTask(void) { Tuint08 count = 0; Tuint08 Result; while (true) { if (taskQueuReadRequestOnName(ThePipe,6,800)) { for (count=0; count<6; count++) { Result = genQueuReadOnName(ThePipe); setNumber(0x0F,Result<<4); taskDelayFromNow(600); } taskQueuReleaseOnName(ThePipe); } else { for (count=0; count<10; count++) { invLed(7); taskDelayFromNow(80); } } } }
/* If you want you can reset the queue by pushing the button. * This task starts waiting until a lock on the queue is * obtained. When this is the case, the queue is reset. */ void appLoop_ResetTask(void) { Tuint08 button = devSwitchPIN & 01; Tuint08 lastbutton = button; while (true) { button = devSwitchPIN & 01; if (button != lastbutton) { setNumber(0x88,0x88); taskQueuReadRequestOnName(ThePipe,0,defDelayTimeMax); Tuint08 uiLedState = devLedPORT; devLedPORT = 0x00; genQueuClearOnName(ThePipe); taskDelayFromNow(80); devLedPORT = uiLedState; taskQueuReleaseOnName(ThePipe); } taskDelayFromNow(100); } }
void appLoop_Select(void) { Tuint08 button = devSwitchPIN & 01; Tuint08 lastbutton = button; genTraceInfo(button); while (true) { button = devSwitchPIN & 01; if (button != lastbutton) { if ((++uiSelector) == 3) { uiSelector = 0; } } taskDelayFromNow(100); } }
void appLoop_EvaluateRc(void) { //#warning "what the f**k!" while (true) { taskDelayFromNow(1000); } }
void appLoop_ReadSwitch(void) { Tuint08 uiSwitchOldState = PINB & (1<<pinSWITCH);; Tuint08 uiSwitchNewState; while (true) { uiSwitchNewState = PINB & (1<<pinSWITCH); if (uiSwitchOldState != uiSwitchNewState) { uiSwitchOldState = uiSwitchNewState; Tuint08 uiLM = uiLedMode; if (uiLM==0) { uiDelayMode = 0; uiDelayTimer = 0; } else if (uiLM < 3) { if (uiDelayMode++ > 4) uiDelayMode=4; switch (uiDelayMode) { case 1 : { uiDelayTimer = 2; } break; case 2 : { uiDelayTimer = 15; } break; case 3 : { uiDelayTimer = 60; } break; default: { uiDelayTimer = 255; } break; } } } taskDelayFromNow(200); } }
void appLoop_Communication(void) { volatile uint8_t c; while (true) { PORTA ^= (1<<PINA7); sei(); uart_putc('x'); //uart_puts("hello, damn it \r\n"); taskDelayFromNow(1000); } }
void appLoop_DriveLamp(void) { while (true) { setChannel(pinLAMP,uiDelayMode>0) taskDelayFromNow(150); } }
static void LedBeacon() { if (uiDelayMode == 0) { uiLedMode=1; setChannel(pinLEDbeacon,true); setChannel(pinLEDsignal,false); taskDelayFromNow(200); } }
static void LedOn() { if (uiDelayMode > 0) { uiLedMode=2; setChannel(pinLEDbeacon,false); setChannel(pinLEDsignal,true); taskDelayFromNow(5000); } }