UP Task,Argpase
This commit is contained in:
10
demo/task/t_task.h
Normal file
10
demo/task/t_task.h
Normal 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
56
demo/task/test.c
Normal 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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user