12 changed files with 306 additions and 79 deletions
-
4.settings/language.settings.xml
-
5.vscode/settings.json
-
35Usr/service/app_core.c
-
1Usr/service/app_core.h
-
102Usr/service/front_end_controler.c
-
25Usr/service/front_end_controler.h
-
1Usr/service/page/Page_main.h
-
25Usr/service/page/page_processer.c
-
8Usr/service/page/page_processer.h
-
87stm32basic/text.txt
-
55stm32basic/ztask.c
-
37stm32basic/ztask.h
@ -1,6 +1,7 @@ |
|||
#pragma once |
|||
|
|||
#include "stm32f4xx_hal.h" |
|||
|
|||
void OnPageLoad_main(); |
|||
|
|||
void OnPageButton_main(uint8_t bid, uint8_t val); |
@ -0,0 +1,87 @@ |
|||
|
|||
|
|||
// void eventProcessTask_init(void){ |
|||
// if(eventProcesstask.TaskNotify){ |
|||
|
|||
// eventProcesstask.TaskNotify--; |
|||
// if(eventProcesstask.m_tasktransition){ |
|||
// eventProcesstask.m_status = working; |
|||
// ZLOGI(TAG, "eventRXtask_init"); |
|||
// if(eventProcesstask.m_taskfunc) eventProcesstask.m_taskfunc(); |
|||
// eventProcesstask.m_status = end; |
|||
// } |
|||
// else{ |
|||
// eventProcesstask.m_status = idle; |
|||
// } |
|||
// } |
|||
// } |
|||
// void eventProcessTask_start(taskfuction cb){ |
|||
|
|||
// if(eventProcesstask.m_status != idle){ |
|||
// eventProcesstask.m_tasktransition = false;//状态: 非空闲,状态转换关 |
|||
// eventProcesstask.TaskNotify++; //通知任务 |
|||
// } |
|||
// else{ |
|||
// eventProcesstask.m_taskfunc = cb; |
|||
// eventProcesstask.m_tasktransition = true;//状态: 空闲,状态转换开 |
|||
// eventProcesstask.TaskNotify++; //通知任务 |
|||
// } |
|||
// ZLOGI(TAG, "eventTaskNotify: %d", eventProcesstask.TaskNotify); |
|||
// } |
|||
|
|||
// void eventProcesstask_start(FunctionCB cb){ |
|||
// eventProcessfunc = cb; |
|||
// } |
|||
|
|||
|
|||
// /* |
|||
// * @brief 回调函数注册 |
|||
// * |
|||
// * |
|||
// * |
|||
// *判断任务状态 |
|||
// *任务空闲:状态转换开 |
|||
// * 状态转换开:1.回调函数登记注册 |
|||
// * 2.任务通知 |
|||
// * |
|||
// *任务非空闲:状态转换关 |
|||
// * 状态转换关:1.不注册 |
|||
// * 2.任务通知等待任务状态空闲 |
|||
// */ |
|||
// void uartRxTask_start(taskfuction cb){ |
|||
|
|||
|
|||
// if(usartRxtask.m_status != idle){ |
|||
// usartRxtask.m_tasktransition = false;//状态: 非空闲,状态转换关 |
|||
// usartRxtask.TaskNotify++; //通知任务 |
|||
// } |
|||
// else{ |
|||
// usartRxtask.m_taskfunc = cb; |
|||
// usartRxtask.m_tasktransition = true;//状态: 空闲,状态转换开 |
|||
// usartRxtask.TaskNotify++; //通知任务 |
|||
// } |
|||
// ZLOGI(TAG, "uartTaskNotify: %d", usartRxtask.TaskNotify); |
|||
// } |
|||
|
|||
// /* |
|||
// * @brief: uart回调任务状态转换,由任务时间表进行任务通知 |
|||
// * |
|||
// */ |
|||
// void uartRxTask_init(void){ |
|||
// if(usartRxtask.TaskNotify){ |
|||
|
|||
// usartRxtask.TaskNotify--; |
|||
// if(usartRxtask.m_tasktransition){ |
|||
// usartRxtask.m_status = working; |
|||
// ZLOGI(TAG, "uartRXtask_init"); |
|||
// if(usartRxtask.m_taskfunc) usartRxtask.m_taskfunc(); |
|||
// usartRxtask.m_status = end; |
|||
// } |
|||
// else{ |
|||
// usartRxtask.m_status = idle; |
|||
// } |
|||
// } |
|||
// } |
|||
|
|||
|
|||
先写出uart的一系列函数,在将其上升为任务函数 |
@ -0,0 +1,55 @@ |
|||
#include "ztask.h" |
|||
|
|||
#define TAG "ztask" |
|||
|
|||
|
|||
|
|||
/* |
|||
* @brief: uart回调任务状态转换,由任务时间表进行任务通知 |
|||
* |
|||
*/ |
|||
void Task_init(Task_t* task){ |
|||
if(task->TaskNotify){ |
|||
|
|||
task->TaskNotify--; |
|||
if(task->m_tasktransition){ |
|||
task->m_status = working; |
|||
ZLOGI(TAG, "task_init"); |
|||
if(task->m_taskfunc) task->m_taskfunc(); |
|||
task->m_status = end; |
|||
} |
|||
else{ |
|||
task->m_status = idle; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
/* |
|||
* @brief 回调函数注册 |
|||
* |
|||
* |
|||
* |
|||
*判断任务状态 |
|||
*任务空闲:状态转换开 |
|||
* 状态转换开:1.回调函数登记注册 |
|||
* 2.任务通知 |
|||
* |
|||
*任务非空闲:状态转换关 |
|||
* 状态转换关:1.不注册 |
|||
* 2.任务通知等待任务状态空闲 |
|||
*/ |
|||
void Task_start(taskfuction cb, Task_t* task){ |
|||
|
|||
if(task->m_status != idle){ |
|||
task->m_tasktransition = false;//状态: 非空闲,状态转换关 |
|||
task->TaskNotify++; //通知任务 |
|||
} |
|||
else{ |
|||
task->m_taskfunc = cb; |
|||
task->m_tasktransition = true;//状态: 空闲,状态转换开 |
|||
task->TaskNotify++; //通知任务 |
|||
} |
|||
ZLOGI(TAG, "TaskNotify: %d", task->TaskNotify); |
|||
|
|||
} |
@ -0,0 +1,37 @@ |
|||
#pragma once |
|||
#include <stdbool.h> |
|||
#include <stdint.h> |
|||
#include "zlog.h" |
|||
//extern taskfuction m_taskfunc; |
|||
|
|||
typedef void (*taskfuction)(); |
|||
//typedef void (*taskfuction)(taskfuction); |
|||
|
|||
//状态机 |
|||
typedef enum{ |
|||
idle, |
|||
working, |
|||
end, |
|||
} status_t; |
|||
|
|||
typedef struct{ |
|||
|
|||
uint32_t TaskNotify;//任务通知信号量 |
|||
|
|||
status_t m_status; |
|||
bool m_tasktransition; |
|||
|
|||
void (*m_taskfunc)(); |
|||
|
|||
void (*init)(taskfuction); |
|||
void (*start)(taskfuction); |
|||
|
|||
|
|||
}Task_t;//任务结构体 |
|||
|
|||
|
|||
void Task_init(Task_t* task); |
|||
void Task_start(taskfuction cb, Task_t* task); |
|||
|
|||
|
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue