93 lines
2.4 KiB
C
93 lines
2.4 KiB
C
/* Include Files */
|
|
#include "KTag.h"
|
|
|
|
TaskHandle_t Sample_Task_Handle;
|
|
|
|
// LED Functionality
|
|
static void LED_CoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex );
|
|
#define LED_COROUTINE_PRIORITY 0
|
|
static const TickType_t Delay_50ms = 50 / portTICK_PERIOD_MS;
|
|
static const TickType_t Delay_100ms = 100 / portTICK_PERIOD_MS;
|
|
static const TickType_t Delay_600ms = 600 / portTICK_PERIOD_MS;
|
|
|
|
// Serial Debug Functionality
|
|
static void Serial_Debug_CoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex );
|
|
#define SERIAL_DEBUG_COROUTINE_PRIORITY 0
|
|
static const TickType_t Delay_1s = 1000 / portTICK_PERIOD_MS;
|
|
|
|
void Sample_Task_Init(void)
|
|
{
|
|
}
|
|
|
|
//! Sample task: blinks the LED and sends text out on the UART.
|
|
/*!
|
|
* \param pvParameters (not used)
|
|
* \return None (infinite loop)
|
|
*/
|
|
void Sample_Task(void * pvParameters)
|
|
{
|
|
xCoRoutineCreate(LED_CoRoutine, LED_COROUTINE_PRIORITY, 0 );
|
|
xCoRoutineCreate(Serial_Debug_CoRoutine, SERIAL_DEBUG_COROUTINE_PRIORITY, 0 );
|
|
|
|
while (true)
|
|
{
|
|
vCoRoutineSchedule();
|
|
|
|
// Delay a bit here so as to not starve the idle task.
|
|
vTaskDelay(10 / portTICK_PERIOD_MS);
|
|
}
|
|
}
|
|
|
|
//! Blinks the LED.
|
|
static void LED_CoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
|
|
{
|
|
crSTART( xHandle );
|
|
|
|
static bool is_startup = false;
|
|
|
|
while (true)
|
|
{
|
|
if (is_startup == false)
|
|
{
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 1);
|
|
crDELAY(xHandle, Delay_100ms);
|
|
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 0);
|
|
crDELAY(xHandle, Delay_50ms);
|
|
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 1);
|
|
crDELAY(xHandle, Delay_100ms);
|
|
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 0);
|
|
crDELAY(xHandle, Delay_50ms);
|
|
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 1);
|
|
crDELAY(xHandle, Delay_100ms);
|
|
|
|
Cy_GPIO_Write(Red_LED_PORT, Red_LED_NUM, 0);
|
|
|
|
is_startup = true;
|
|
}
|
|
crDELAY(xHandle, Delay_600ms);
|
|
}
|
|
|
|
crEND();
|
|
}
|
|
|
|
static void Serial_Debug_CoRoutine( CoRoutineHandle_t xHandle, UBaseType_t uxIndex )
|
|
{
|
|
crSTART( xHandle );
|
|
|
|
//static uint32_t i = 0;
|
|
|
|
while (true)
|
|
{
|
|
//Debug_printf("%lu\n", i++);
|
|
//vSerialPutString(" * ", 50);
|
|
crDELAY(xHandle, Delay_1s);
|
|
}
|
|
|
|
crEND();
|
|
}
|
|
|
|
/* [] END OF FILE */
|