From 9073edb7a875e34719b6bf5338bcf3a168ffe217 Mon Sep 17 00:00:00 2001 From: chenyf <1343619937@qq.com> Date: Wed, 15 Jan 2025 13:11:14 +0800 Subject: [PATCH] fix(demo): demo. --- .gitmodules | 3 ++ .vscode/settings.json | 9 +++++ build/easy_timer.o | Bin 0 -> 1112 bytes build/list/list.o | Bin 0 -> 1397 bytes build/port_windows.o | Bin 0 -> 3353 bytes easy_timer.c | 29 ++++++++++++++ easy_timer.h | 86 ++++++++++++++++++++++++++++++++++++++++++ list | 1 + list_easy_timer.exe | Bin 0 -> 57579 bytes makefile | 22 +++++++++++ port_windows.c | 64 +++++++++++++++++++++++++++++++ 11 files changed, 214 insertions(+) create mode 100644 .gitmodules create mode 100644 .vscode/settings.json create mode 100644 build/easy_timer.o create mode 100644 build/list/list.o create mode 100644 build/port_windows.o create mode 100644 easy_timer.c create mode 100644 easy_timer.h create mode 160000 list create mode 100644 list_easy_timer.exe create mode 100644 makefile create mode 100644 port_windows.c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2cb92e8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "list"] + path = list + url = http://chenyf123.top:1030/utils/list.git diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..4a2de2e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "files.associations": { + "easy_timer.h": "c", + "stdio.h": "c", + "windows.h": "c", + "cmath": "c", + "list.h": "c" + } +} \ No newline at end of file diff --git a/build/easy_timer.o b/build/easy_timer.o new file mode 100644 index 0000000000000000000000000000000000000000..774c0b7458f3e58c45474f442783acf0cc02e327 GIT binary patch literal 1112 zcmZ`&&ubGw6n>N4YQ$oK_TbH>^q`Wgu??Zk#l;f37hw^kCyDv7ty?xf*xj^gKoQf5 zAr$f_c<>MKYKuslT}lWbYCHOCgd$ z^~|mpVm|ojG7O-O95M+%1&n8Ez2a5Em5T=r3}3CfuElL)^eUfnTk-o6=!6$EE^ zu4o$Me6>4!@FEfxquOFF@-($Q&%24d*TOxBcP}6B;$B0yGMCTLp6G+0djBk^pDYkj zAA&w8O~xD` zX9;s?$>5Y0c_wz`d)N5XNcVsIdTXR{h9_!CI$!U6^rpSXjq&CQ~6 zySrW}7xLKytGTwCbq->Y3Uv{V$K8W!fzx9f$W}w`K`A6E#dtlNjB1)@Kdvm2znpBM#+D0JU6o=)J7;dOeu_ zA>^V*{|^uGR;dsW4<7s%M8kT>F^6EBd2cs;Ytw<9ogd$uH}BhhQ+Rs;NWQ87*SHk| z!?BwVw}twy0EF;)ju?_Te00dXFba7m&m-q66EerfR=s{cLS)_$t{E)2f~g<0nItB} zO{01iH$q(1>+d4s33o3cE#xtPWe?+Lus<`)IzL(aPn>nu!>p5yehOpuHz8QZ8nX7` z5E=_TYQ)`TU5s?IQPv4_vu|n~*tO6Hc68jhjB&KHLxi}i!l6PVcM+Wt>zW#QQyZ83 z5)LiNXgyx9{UyG6@_%D~Fm@+SFNhV1n8Bi8xMDdX+CH~9i$Pd;+{a0E+7g~?>XvUx|~Mu>kPWq7)ypXPu`&@nmVsN3#m#5;EWv+ zaVq?Q6bii$kj_Q#{SECX+H2|bBmGu0mCPj*vDd}&gVk8wei^IT`|-Q_lSZ-R=vxQ+ zda=B=5!*;6^lGj0%HDQv>nY>D5eK-AH6r+g;3-zT$}LntH%`T*d%Ne} zUh_qfLRAdM!TluuP(j2W`=dYDQsnvt^al}t(0@P>1Vu_ksG`RAW@dM1bC<(`nfbi; zKJV?DH?zBAzrTZEJJCTmX*T>~uFli)rS-10HUg8;mFRFz6 zCU`v{8zk4#m#S5X))8Jqo*mFac$G$kJpgV%Jh>Sp+tOFl54M5uc{|V0D`}n!ygj{y z^gO{M?u7~B8G0e~11Up%?z_MnhMHi*&;~JDdXSE%f&K>YSj+{uu}1k(hA9Az;GbArr#jP9SXKt9A3unvL1V=EmJPTaX{7 zLyLEd=FmGW7`zr_lD(9yV&lv(OXHV6MRHjtnqQq9JqURa zm@yyn$}JpEH~Q{DF>WJfiX@GVduD?b5Goa+Ix*jCg?kh6HaJ5mlk8bdc}mS@a}MJ| zi;hDN7vnLqSA=G(UCZQMr{opDJu-Hb5M@B^8<^--l^kI3P06yY8-7*z zZ{-L*rnFz=g)^=JHyP)%(DAI|jJfXCg0^sO5 z7!MozV_T-K>uW21;MxM)euy^U=tQPUmoovqnjOo7je zP#(tT7%IZ3GxQdW+~XP`?(rcY?(s1o?(r!g?(roctYa_v7REyi^+T+lS4 zq{Y_JScj|OR?LG(&c-@CC)_$6TVITIMvSoH+}DhCc$TsC>d;(gmVd8ZYBz&6^&G#T-dkXq?aefC|1$yH3 z4@mena!rYbR_K%|Mo%~gAR&Cixu%?VJP_FX%{B6E0&`ateDB#W1&OT5Hwj#os^Ce8 z)+ad9Edu|@ooXoGAn-J+%5Lr~jq>fGk8$uEq?>$mz{`TFxG>^`bDCSH=)tcs96ZQD{)&nu^fizH`k7pwWcH zH6IBMCS#+2EJ16r(vfll+)HFj_V%XO+@7jxC6v|<%&UV%uEuCg~e(O3!mf5F(F%;JAC z5e+l3Jm01)Cre`RRJ#Obi{K9UL+ln1>>`|01aX>D1#7F6w8T!iweizQiHBO2Q?6L^ zSXILDxf%`Dax^IVK{@Xg=&69dS)*QIZ5#WHU-Lp52l52!4&q$Rtw=>Guk)fgWD literal 0 HcmV?d00001 diff --git a/easy_timer.c b/easy_timer.c new file mode 100644 index 0000000..caaa1a4 --- /dev/null +++ b/easy_timer.c @@ -0,0 +1,29 @@ +#include "easy_timer.h" + +#include + +list_t easy_timer_list; +void (*easy_timer_sleep_func)(void) = NULL; + +void easy_timer_core() { + list_node_t *node = (list_node_t *)easy_timer_list; + while (node != NULL) { + _easy_timer_t *obj = (_easy_timer_t *)node->data; + if (obj->time_start == 0) { + continue; + } + if (obj->time_wait_now < obj->time_wait_cfg) { + obj->time_wait_now += 1; + } else { + obj->time_wait_now = 0; + obj->timer_handler(); + if (obj->time_out == 1) { + obj->time_start = 0; + } + } + node = node->next; + } + if (easy_timer_sleep_func != NULL) { + easy_timer_sleep_func(); + } +} \ No newline at end of file diff --git a/easy_timer.h b/easy_timer.h new file mode 100644 index 0000000..84b04e7 --- /dev/null +++ b/easy_timer.h @@ -0,0 +1,86 @@ +#ifndef EASY_TIMER_H +#define EASY_TIMER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef u32 +#define u32 unsigned int +#define u16 unsigned short +#define u8 unsigned char +#endif + +#include "list/list.h" +typedef struct _easy_timer_t { + u32 time_wait_cfg; + u32 time_wait_now; + void (*timer_handler)(void); + u8 time_out : 1; + u8 time_start : 1; +} _easy_timer_t; +extern list_t easy_timer_list; +extern void (*easy_timer_sleep_func)(void); + +#define TIMER_CONTINUE_TRIGGER 0 +#define TIMER_SIGNAL_TRIGGER 1 +/** + * @brief 注册定时器句柄 + * @param _timer_handler 定时器回调函数 + * @param _time_out 超时标志位 TIMER_CONTINUE_TRIGGER: 持续触发模式 , + * TIMER_SIGNAL_TRIGGER: 单词触发模式 + * @param _timer_cfg 定时器超时时间,单位ms + */ +#define EXPORT_EASY_TIMER_HANDLE(_timer_handler, _time_out, _timer_cfg) \ + _easy_timer_t _timer_handler##_timer = { \ + .time_wait_cfg = _timer_cfg, \ + .time_wait_now = 0, \ + .timer_handler = _timer_handler, \ + .time_out = _time_out, \ + .time_start = 1, \ + }; \ + EXPORT_LIST_NODE(easy_timer_list, _timer_handler##_timer); + +/** + * @brief 注册睡眠函数 + */ +#define EXPORT_SLEEP_FUNC(_sleep_func) \ + int __attribute__((constructor)) export_sleep_func_##_sleep_func(void) { \ + extern void (*easy_timer_sleep_func)(void); \ + easy_timer_sleep_func = _sleep_func; \ + return 0; \ + } + +/** + * @brief 定时器核心函数 + */ +void easy_timer_core(); + +#define EASY_TIMER_START(_timer_handler) \ + { \ + extern _easy_timer_t _timer_handler##_timer; \ + _timer_handler##_timer.time_start = 1; \ + _timer_handler##_timer.time_wait_now = 0; \ + } + +#define EASY_TIMER_STOP(_timer_handler) \ + { \ + extern _easy_timer_t _timer_handler##_timer; \ + _timer_handler##_timer.time_start = 0; \ + _timer_handler##_timer.time_wait_now = 0; \ + } + +#define EASY_TIMER_SET_TIME(_timer_handler, _time_cfg) \ + { \ + extern _easy_timer_t _timer_handler##_timer; \ + _timer_handler##_timer.time_wait_cfg = _time_cfg; \ + _timer_handler##_timer.time_wait_now = 0; \ + } + + + +#ifdef __cplusplus +} +#endif + +#endif // EASY_TIMER_H diff --git a/list b/list new file mode 160000 index 0000000..e12c5ea --- /dev/null +++ b/list @@ -0,0 +1 @@ +Subproject commit e12c5ea88a7a1a627f332f33e3051593171739a0 diff --git a/list_easy_timer.exe b/list_easy_timer.exe new file mode 100644 index 0000000000000000000000000000000000000000..5b012f518bb3094847239bd15d0c0fb7982827e3 GIT binary patch literal 57579 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¬B%VSWYAzs5O`*b$5;Rjy*} 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 literal 0 HcmV?d00001 diff --git a/makefile b/makefile new file mode 100644 index 0000000..2dd73e9 --- /dev/null +++ b/makefile @@ -0,0 +1,22 @@ + +# 源代码路径 +SRC_DIRS = ./ ./list + +BUILD_DIR = ./build + +# 查找所有 SRC_DIRS 中的 .c 文件 +SRC = $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) + +# 将 .c 文件替换为 .o 文件 +OBJ = $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRC)) + +all: $(OBJ) + gcc $(OBJ) -o list_easy_timer + +$(BUILD_DIR)/%.o: %.c + mkdir -p $(BUILD_DIR) + gcc -c -o $@ $< + +clean: + rm -rf $(BUILD_DIR) + diff --git a/port_windows.c b/port_windows.c new file mode 100644 index 0000000..f0f4d53 --- /dev/null +++ b/port_windows.c @@ -0,0 +1,64 @@ +#include +#include "easy_timer.h" +#include + + +#define TICK_ONE_TIME 14 // 一个 tick 14ms +#define MS_TO_TICK(ms) ((ms) / TICK_ONE_TIME) +//创建一个windows线程 +HANDLE thread; +//延迟函数 +static void sleep_func() { + Sleep(1); +} +EXPORT_SLEEP_FUNC(sleep_func); + +void hello_world() { + printf("hello world\n"); +} +EXPORT_EASY_TIMER_HANDLE(hello_world,TIMER_CONTINUE_TRIGGER, MS_TO_TICK(1000)); + +void hello_dog(){ + printf("hello dog\n"); +} +EXPORT_EASY_TIMER_HANDLE(hello_dog,TIMER_CONTINUE_TRIGGER, MS_TO_TICK(1000)); +/** + * @brief 获取当前时间 + * @return 时间 + * @note 用于测量Sleep函数的精度 + */ +double get_time() { + LARGE_INTEGER frequency; + LARGE_INTEGER count; + + // 获取高精度计数器的频率 + QueryPerformanceFrequency(&frequency); + + // 获取当前的高精度计数器值 + QueryPerformanceCounter(&count); + + // 将计数器值转换为秒 + return (double)count.QuadPart / (double)frequency.QuadPart; +} + +//定义线程函数 +DWORD WINAPI easy_timer_thread(LPVOID lpParam) { + while (1) + { + + easy_timer_core(); + } + return 0; +} + +int main() { + //创建线程 + thread = CreateThread(NULL, 0, easy_timer_thread, NULL, 0, NULL); + //启动线程 + if (thread) { + // printf("easy_timer_run start...\n"); + WaitForSingleObject(thread, INFINITE); + } + return 0; +} +