UP Task,Argpase

This commit is contained in:
JiXieShi
2024-05-10 13:47:39 +08:00
parent 84bc401ba4
commit be1d31e732
18 changed files with 591 additions and 63 deletions

10
demo/task/t_task.h Normal file
View File

@@ -0,0 +1,10 @@
//
// Created by lydxh on 2024/5/10.
//
#ifndef HW_LIB_T_TASK_H
#define HW_LIB_T_TASK_H
void Test_task();
#endif //HW_LIB_T_TASK_H

56
demo/task/test.c Normal file
View File

@@ -0,0 +1,56 @@
#include <sysinfoapi.h>
#include "stdio.h"
#include "task.h"
Task_t *task1;
Task_t *task2;
Task_t *task3;
Task_t *task4;
uint64_t GetTick() {
return (uint64_t) GetTickCount64();
}
void exampleTimer1Callback(Task_t *task, void *userData) {
printf("[%012ld] Task:%p callback-> %s.\r\n", GetTick(), task, (char *) userData);
TaskDel(task);
}
void exampleTimer2Callback(Task_t *task, void *userData) {
printf("[%012ld] Task:%p callback-> %s.\r\n", GetTick(), task, (char *) userData);
}
void exampleTimer3Callback(Task_t *task, void *userData) {
printf("[%012ld] Task:%p callback-> %s.\r\n", GetTick(), task, (char *) userData);
TaskSetTime(task, 4567);
TaskStart(task);
}
typedef struct CustomUserData {
int count;
char *str;
} CustomUserData;
void exampleTimer4Callback(Task_t *task, void *userData) {
CustomUserData *customUserData = (CustomUserData *) userData;
customUserData->count--;
printf("[%012ld] Task:%p callback-> %s.\r\n", GetTick(), task, customUserData->str);
if (customUserData->count > 0) {
TaskStart(task);
}
}
void Test_task() {
TaskInit(GetTick);
TaskCreat(task1, 1000, -1, exampleTimer1Callback, "1000ms CYCLE task");
TaskCreat(task2, 5000, -1, exampleTimer2Callback, "5000ms ONCE task");
TaskCreat(task3, 3456, 2, exampleTimer3Callback, "3456ms delay start, 4567ms CYCLE task");
CustomUserData customUserData = {
.count = 3,
.str = "2000ms 3 task"
};
TaskCreat(task4, 2000, 1, exampleTimer4Callback, &customUserData);
while (1) {
TaskRun();
}
}