83 lines
2.1 KiB
C
83 lines
2.1 KiB
C
/*
|
|
* @Description:
|
|
* @Date: 2021-03-10 10:11:18
|
|
* @LastEditors: CK.Zh
|
|
* @LastEditTime: 2021-03-10 10:13:16
|
|
* @FilePath: \NaviKit_EC_stm32\App\Src\th_led.c
|
|
*/
|
|
#define LOG_TAG "TH-Led"
|
|
|
|
#include <th_led.h>
|
|
#include "main.h"
|
|
#include "navikit.h"
|
|
|
|
const osThreadAttr_t LedBlinkTask_attributes = {
|
|
.name = "LedBlinkTask",
|
|
.priority = (osPriority_t) osPriorityLow,
|
|
.stack_size = 256 * 4
|
|
};
|
|
|
|
/* USER CODE BEGIN Header_LedBlinkTask */
|
|
/**
|
|
* @brief Function implementing the LedBlinkTask thread.
|
|
* @param argument: Not used
|
|
* @retval None
|
|
*/
|
|
/* USER CODE END Header_LedBlinkTask */
|
|
void LedBlinkTask(void *argument)
|
|
{
|
|
/* USER CODE BEGIN LedBlinkTask */
|
|
/* Infinite loop */
|
|
log_d("Start LED Blink Task");
|
|
for(;;)
|
|
{
|
|
|
|
osDelay(1000);
|
|
switch(NaviKit.sys.sta){
|
|
case run: {
|
|
if(false == PWR_Status(SYS_PWR_LED))
|
|
PWR_Enable(SYS_PWR_LED,true,0);//turn on power led
|
|
|
|
PWR_Enable(SYS_RUN_LED,true,50);//turn on sys run led
|
|
PWR_Enable(SYS_RUN_LED,false,0);//turn off sys run led
|
|
}break;
|
|
case idle:{
|
|
if(true == PWR_Status(SYS_PWR_LED))
|
|
PWR_Enable(SYS_PWR_LED,false,0);//turn off power led
|
|
|
|
PWR_Enable(SYS_RUN_LED,true,20);//turn on sys run led
|
|
PWR_Enable(SYS_RUN_LED,false,3000);//turn off sys run led
|
|
}break;
|
|
case sleep:{//sleep mode
|
|
for(uint16_t i=0;i<25;i++){//20 light level
|
|
for(uint16_t j=0;j<3;j++){//the time length of every light level
|
|
PWR_Enable(SYS_PWR_LED,false,0);
|
|
PWR_Enable(SYS_RUN_LED,false,0);
|
|
osDelay(i);
|
|
PWR_Enable(SYS_PWR_LED,true,0);
|
|
PWR_Enable(SYS_RUN_LED,true,0);
|
|
osDelay(25-i);
|
|
}
|
|
}
|
|
for(uint16_t i=0;i<25;i++){
|
|
for(uint16_t j=0;j<3;j++){
|
|
PWR_Enable(SYS_PWR_LED,false,0);
|
|
PWR_Enable(SYS_RUN_LED,false,0);
|
|
osDelay(25-i);
|
|
PWR_Enable(SYS_PWR_LED,true,0);
|
|
PWR_Enable(SYS_RUN_LED,true,0);
|
|
osDelay(i);
|
|
}
|
|
}
|
|
}break;
|
|
case dfu:{
|
|
PWR_Enable(SYS_PWR_LED,!PWR_Status(SYS_PWR_LED),0);
|
|
PWR_Enable(SYS_RUN_LED,!PWR_Status(SYS_PWR_LED),0);
|
|
}break;
|
|
default : break;
|
|
}
|
|
}
|
|
/* USER CODE END LedBlinkTask */
|
|
}
|
|
|