第一次提交
This commit is contained in:
248
App/sys.c
Normal file
248
App/sys.c
Normal file
@@ -0,0 +1,248 @@
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief sys.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>йؿ<D0B9><D8BF><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
|
||||
* uwTick <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> HAL_GetTick() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>uwTick(ֻ<><D6BB>)<29><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>uwTick<63><6B>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* uwTick ÿ<><C3BF>1ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD>ֻҪ#include "main.h"<22><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>uwTick<63><6B><EFBFBD><EFBFBD>hal<61><6C><EFBFBD>Դ<EFBFBD><D4B4>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
|
||||
//<2F>û<EFBFBD>include
|
||||
#include "at32a423.h"
|
||||
#include "systick.h"
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>include<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#include "sys.h"
|
||||
#include "task.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t enable_flag; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1B1BBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F1B2BBB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD> (<28><>0Ϊ<30><CEAA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>)
|
||||
uint16_t interval_time; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ʱ<EFBFBD><CAB1> (<28><>λms)
|
||||
uint32_t last_time; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> (<28><>λms)
|
||||
uint8_t ready_flag; // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>0Ϊ<30><CEAA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>)
|
||||
uint32_t out_time; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱֹͣ<CDA3><D6B9><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ʱ<EFBFBD><CAB1> (<28><>λms)
|
||||
int32_t usage_tick; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>VAL(CNT)<29>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>sys.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD> System_RunTask())
|
||||
float usage_time; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC>λΪus<75><73><EFBFBD><EFBFBD>λΪus<75><73><EFBFBD><EFBFBD>λΪus<75><73> (<28><><EFBFBD>㷽<EFBFBD><E3B7BD><EFBFBD><EFBFBD>sys.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD> System_RunTask())
|
||||
float usage_percent; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>cpu<70>İٷֱ<D9B7> (<28><><EFBFBD>㷽<EFBFBD><E3B7BD><EFBFBD><EFBFBD>sys.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD> System_RunTask())
|
||||
void (*f)(void); // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>еĺ<D0B5><C4BA><EFBFBD> (<28><>֪<EFBFBD><D6AA><EFBFBD><EFBFBD>ôָ<C3B4><D6B8>sys.c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD> System_Init())
|
||||
}TaskStruct;
|
||||
|
||||
TaskStruct task_structs[TASK_NUMBER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief ϵͳ<CFB5><CDB3>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enable_flag,interval_time,task_priority,f<><66><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>0
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
void System_TaskInit()
|
||||
{
|
||||
task_structs[TASK1].enable_flag=1;
|
||||
task_structs[TASK1].interval_time=500;
|
||||
task_structs[TASK1].f=task1;
|
||||
|
||||
task_structs[TASK2].enable_flag=1;
|
||||
task_structs[TASK2].interval_time=10000;
|
||||
task_structs[TASK2].f=task2;
|
||||
|
||||
task_structs[TASK3].enable_flag=1;
|
||||
task_structs[TASK3].interval_time=500;
|
||||
task_structs[TASK3].f=task3;
|
||||
|
||||
task_structs[TASK4].enable_flag=1;
|
||||
task_structs[TASK4].interval_time=5;
|
||||
task_structs[TASK4].f=task4;
|
||||
|
||||
task_structs[TASK5].enable_flag=1;
|
||||
task_structs[TASK5].interval_time=5;
|
||||
task_structs[TASK5].f=task5;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> usage_time,usage_percent,<2C>ʹ˺<CDB4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>total_usage_time
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
int32_t total_usage_tick; // <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ˺<C7B4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>tick<63><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>debug
|
||||
float total_usage_time; // <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ˺<C7B4><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>ʱ<EFBFBD><CAB1>(<28><>λus)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>debug
|
||||
int32_t total_usage_tick_max_in1s; // total_usage_tick <20><>ij1<C4B3><31><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
float total_usage_time_max_in1s; // total_usage_time <20><>ij1<C4B3><31><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
|
||||
void System_TaskRun()
|
||||
{
|
||||
int64_t total_begin_tick = SysTick->VAL - get_system_tick()*(SysTick->LOAD+1); // ˼·ͬ<C2B7><CDAC><EFBFBD><EFBFBD> begin_tick
|
||||
|
||||
for(uint8_t i=0;i<TASK_NUMBER;i++)
|
||||
{
|
||||
if(task_structs[i].ready_flag)
|
||||
{
|
||||
task_structs[i].ready_flag--;
|
||||
// <20><><EFBFBD><EFBFBD> begin_tick <20>Ĺ<EFBFBD>ʽ = <20><> >0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> - <20><>------ <0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------<2D><> (begin_tick < 0)
|
||||
int64_t begin_tick = SysTick->VAL - get_system_tick()*(SysTick->LOAD+1);
|
||||
|
||||
task_structs[i].f(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> usage_tick <20>Ĺ<EFBFBD>ʽ = <20><>ʼ<EFBFBD><CABC>tick - <20><>---------------<2D><><EFBFBD>ڵ<EFBFBD>tick--------------<2D><>(<28><><EFBFBD><EFBFBD>tick<63><6B><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC>tick > <20><><EFBFBD>ڵ<EFBFBD>tick)
|
||||
task_structs[i].usage_tick = begin_tick - (SysTick->VAL - get_system_tick()*(SysTick->LOAD+1));
|
||||
// <20><><EFBFBD><EFBFBD> usage_time <20>Ĺ<EFBFBD>ʽ = <20><>-----------usage_tick----------<2D><> / <20><>1ms<6D><73>tick<63><6B><EFBFBD><EFBFBD>--<2D><> * 1000(<28><>λ<EFBFBD><CEBB><EFBFBD>㣬1ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1000us)
|
||||
task_structs[i].usage_time = (float)task_structs[i].usage_tick / (SysTick->LOAD+1) * 1000.f;
|
||||
// <20><><EFBFBD><EFBFBD> usage_percent <20>Ĺ<EFBFBD>ʽ = <20><>-----<2D><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>(<28><>λHz)-----<2D><> * <20><>---<2D><><EFBFBD><EFBFBD><F1B5A5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>(<28><>λs)----<2D><> * 100(<28><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>%,<2C><><EFBFBD><EFBFBD>*100)
|
||||
task_structs[i].usage_percent = 1000.f/task_structs[i].interval_time * task_structs[i].usage_time/1000000.f * 100;
|
||||
}
|
||||
}
|
||||
|
||||
total_usage_tick = total_begin_tick - (SysTick->VAL - get_system_tick()*(SysTick->LOAD+1)); // ˼·ͬ<C2B7><CDAC><EFBFBD><EFBFBD> usage_tick
|
||||
total_usage_time = (float)total_usage_tick / (SysTick->LOAD+1) * 1000.f; // ˼·ͬ<C2B7><CDAC><EFBFBD><EFBFBD> usage_time
|
||||
|
||||
if(total_usage_tick_max_in1s < total_usage_tick)
|
||||
{
|
||||
total_usage_tick_max_in1s = total_usage_tick;
|
||||
}
|
||||
if(total_usage_time_max_in1s < total_usage_time)
|
||||
{
|
||||
total_usage_time_max_in1s = total_usage_time;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief ϵͳ<CFB5><CDB3><EFBFBD>£<EFBFBD>ÿ<EFBFBD><C3BF>1ms<6D>ӵδ<D3B5><CEB4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>һ<EFBFBD><D2BB> (<28><>stm32f4xx_it.c<><63> System_Update()<29>ﱻ<EFBFBD><EFB1BB><EFBFBD><EFBFBD>)
|
||||
* ͨ<><CDA8>uwTick,enable_flag,stop_time<6D><65>ֵ<EFBFBD><D6B5>ȷ<EFBFBD><C8B7>ready_flag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>last_time,stop_time
|
||||
* ÿ<><C3BF>1000ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> total_usage_tick_max_in1s <20><> total_usage_time_max_in1s
|
||||
* @changedate 2020.09.15
|
||||
*/
|
||||
void System_TaskUpdate()
|
||||
{
|
||||
for(uint8_t i=0;i<TASK_NUMBER;i++)
|
||||
{
|
||||
if(task_structs[i].out_time != 0)
|
||||
{
|
||||
if(task_structs[i].out_time == 1)
|
||||
{
|
||||
Task_InCallback(i); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>лָ<D0BB><D6B8><EFBFBD><EFBFBD>ָ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
task_structs[i].out_time--; //<2F><><EFBFBD><EFBFBD> out_time
|
||||
}
|
||||
// ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>ﵽ<EFBFBD><EFB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7> ready_flag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> last_time
|
||||
if(task_structs[i].enable_flag &&
|
||||
task_structs[i].out_time == 0 &&
|
||||
task_structs[i].interval_time<=(get_system_tick()-task_structs[i].last_time))
|
||||
{
|
||||
task_structs[i].ready_flag++;
|
||||
task_structs[i].last_time=get_system_tick();
|
||||
}
|
||||
}
|
||||
|
||||
if(get_system_tick()%1000 == 0) // ÿ<><C3BF>1000ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> total_usage_tick_max_in1s <20><> total_usage_time_max_in1s
|
||||
{
|
||||
total_usage_tick_max_in1s = total_usage_tick;
|
||||
total_usage_time_max_in1s = total_usage_time;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣһ<CDA3><D2BB>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
void System_TaskOut(uint8_t task_number,uint32_t stop_time)
|
||||
{
|
||||
task_structs[task_number].out_time = stop_time;
|
||||
Task_OutCallback(task_number);
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رգ<D8B1><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
void System_TaskDisable(uint8_t task_number)
|
||||
{
|
||||
task_structs[task_number].enable_flag = 0;
|
||||
Task_DisableCallback(task_number);
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @changedate 2020.09.13
|
||||
*/
|
||||
void System_TaskEnable(uint8_t task_number)
|
||||
{
|
||||
task_structs[task_number].enable_flag = 1;
|
||||
Task_EnableCallback(task_number);
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief ϵͳǿ<CDB3><C7BF>ͣ<EFBFBD><CDA3>
|
||||
* @changedate 2020.09.14
|
||||
*/
|
||||
void System_AllTaskDisable()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
for(uint8_t i=0;i<TASK_NUMBER;i++)
|
||||
{
|
||||
task_structs[i].enable_flag = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
* @changedate 2021.04.15
|
||||
*/
|
||||
void System_SoftWatchDogInit(SoftWatchDogStruct *dog,uint32_t time_load,uint8_t default_state)
|
||||
{
|
||||
dog->state = default_state;
|
||||
dog->time_load = time_load;
|
||||
dog->time_cnt = dog->time_load;
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>ι<EFBFBD><CEB9>
|
||||
* @changedate 2021.04.15
|
||||
*/
|
||||
void System_SoftWatchDogFeed(SoftWatchDogStruct *dog)
|
||||
{
|
||||
dog->state = 1;
|
||||
dog->time_cnt = dog->time_load;
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>״̬
|
||||
* @changedate 2021.04.15
|
||||
*/
|
||||
void System_SoftWatchDogUpdate(SoftWatchDogStruct *dog)
|
||||
{
|
||||
if(dog->time_cnt > 0)
|
||||
{
|
||||
dog->time_cnt--;
|
||||
dog->state = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dog->time_cnt = 0;
|
||||
dog->state = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @auther whlphlg
|
||||
* @brief <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD>״̬
|
||||
* @changedate 2021.04.15
|
||||
*/
|
||||
uint8_t System_GetSoftWatchDogState(SoftWatchDogStruct *dog)
|
||||
{
|
||||
return dog->state;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user