/* --------------------------------------------------------------------------- * taskfunctions.c (c) 2008 Micro-key bv * --------------------------------------------------------------------------- * Micro-key bv * Industrieweg 28, 9804 TG Noordhorn * Postbus 92, 9800 AB Zuidhorn * The Netherlands * Tel: +31 594 503020 * Fax: +31 594 505825 * Email: support@microkey.nl * Web: www.microkey.nl * --------------------------------------------------------------------------- * Description: * Contains Functions to control the TestLED Tasks * --------------------------------------------------------------------------- * Version(s): 0.1, Apr 09, 2008, MMi * Creation. * --------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------- * System include files * --------------------------------------------------------------------------- */ #include "lpc23xx.h" #include "types.h" /* FreeRTOS includes */ #include "FreeRTOS.h" #include "task.h" /* --------------------------------------------------------------------------- * Application include files * --------------------------------------------------------------------------- */ #include "taskfunctions.h" #include "dio.h" /* --------------------------------------------------------------------------- * Local constant and macro definitions * --------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------- * Global variable definitions * --------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------- * Local variable definitions * --------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------- * Local function definitions * --------------------------------------------------------------------------- */ void taskInit (void) { d_gLED = 0; /* Initialize TaskStatus with 0 */ d_ledtestled = 0; d_dioled = 0; d_aioled = 0; d_busled = 0; d_eepromled = 0; d_flashled = 0; d_mmcled = 0; d_logled = 0; d_comled = 0; d_powerled = 0; d_rtcled = 0; } void diotasksdelete(void) { if (d_dioled == pdPASS) /* If defined Task exists */ { vTaskDelete (dioled); /* Delete Task */ dioWrite (0,DIOLED,FALSE); /* Switch off corresponding DIO-LED */ d_dioled = 0; /* Set TaskStatus to 0 */ } if (d_ledtestled == pdPASS) { vTaskDelete (ledtestled); dioWrite (0,LEDTESTLED,FALSE); d_ledtestled = 0; } if (d_aioled == pdPASS) { vTaskDelete (aioled); dioWrite (0,AIOLED,FALSE); d_aioled = 0; } if (d_busled == pdPASS) { vTaskDelete (busled); dioWrite (0,BUSLED,FALSE); d_busled = 0; } #if (allMemoryUseSameLED == 0) if (d_eepromled == pdPASS) { vTaskDelete (eepromled); dioWrite (0,EEPROMLED,FALSE); d_eepromled = 0; } if (d_flashled == pdPASS) { vTaskDelete (flashled); dioWrite (0,FLASHLED,FALSE); d_flashled = 0; } if (d_logled == pdPASS) { vTaskDelete (logled); dioWrite (0,LOGLED,FALSE); d_logled = 0; } #else if (d_batteryled == pdPASS) { vTaskDelete (batteryled); dioWrite (0,BATTERYLED,FALSE); d_batteryled = 0; } if (d_memoryled == pdPASS) { vTaskDelete (memoryled); dioWrite (0,MEMORYLED,FALSE); d_memoryled = 0; } #endif if (d_mmcled == pdPASS) { vTaskDelete (mmcled); dioWrite (0,MMCLED,FALSE); d_mmcled = 0; } if (d_comled == pdPASS) { vTaskDelete (comled); dioWrite (0,COMLED,FALSE); d_comled = 0; } if (d_powerled == pdPASS) { vTaskDelete (powerled); dioWrite (0,POWERLED,FALSE); d_powerled = 0; } if (d_rtcled == pdPASS) { vTaskDelete (rtcled); dioWrite (0,RTCLED,FALSE); d_rtcled = 0; } } void diotaskssuspend(void) { if (d_dioled == pdPASS) /* If defined Task exists */ { vTaskSuspend (dioled); /* Suspend Task */ dioWrite (0,DIOLED,FALSE); /* Switch off corresponding DIO-LED */ } if (d_ledtestled == pdPASS) { vTaskSuspend (ledtestled); dioWrite (0,LEDTESTLED,FALSE); } if (d_aioled == pdPASS) { vTaskSuspend (aioled); dioWrite (0,AIOLED,FALSE); } if (d_busled == pdPASS) { vTaskSuspend (busled); dioWrite (0,BUSLED,FALSE); } #if (allMemoryUseSameLED == 0) if (d_eepromled == pdPASS) { vTaskSuspend (eepromled); dioWrite (0,EEPROMLED,FALSE); } if (d_flashled == pdPASS) { vTaskSuspend (flashled); dioWrite (0,FLASHLED,FALSE); } if (d_logled == pdPASS) { vTaskSuspend (logled); dioWrite (0,LOGLED,FALSE); } #else if (d_batteryled == pdPASS) { vTaskSuspend (batteryled); dioWrite (0,BATTERYLED,FALSE); } if (d_memoryled == pdPASS) { vTaskSuspend (memoryled); dioWrite (0,MEMORYLED,FALSE); } #endif if (d_mmcled == pdPASS) { vTaskSuspend (mmcled); dioWrite (0,MMCLED,FALSE); } if (d_comled == pdPASS) { vTaskSuspend (comled); dioWrite (0,COMLED,FALSE); } if (d_powerled == pdPASS) { vTaskSuspend (powerled); dioWrite (0,POWERLED,FALSE); } if (d_rtcled == pdPASS) { vTaskSuspend (rtcled); dioWrite (0,RTCLED,FALSE); } } void diotasksresume(void) { if (d_batteryled == pdPASS) /* If defined Task exists */ { vTaskResume(batteryled); /* Resume Task */ } if (d_dioled == pdPASS) { vTaskResume(dioled); } if (d_ledtestled == pdPASS) { vTaskResume(ledtestled); } if (d_aioled == pdPASS) { vTaskResume(aioled); } if (d_busled == pdPASS) { vTaskResume(busled); } if (d_eepromled == pdPASS) { vTaskResume(eepromled); } if (d_flashled == pdPASS) { vTaskResume(flashled); } if (d_logled == pdPASS) { vTaskResume(logled); } if (d_memoryled == pdPASS) { vTaskResume (memoryled); } if (d_mmcled == pdPASS) { vTaskResume(mmcled); } if (d_comled == pdPASS) { vTaskResume(comled); } if (d_powerled == pdPASS) { vTaskResume(powerled); } if (d_rtcled == pdPASS) { vTaskResume(rtcled); } }