consoleyou 发表于 2025-10-11 00:23:17

consoleyou 发表于 2025-10-11 00:22
Rebuild started: Project: TASK_Test
Rebuild target 'Target 1'
User command #1: .\Auto_Keil.exe


tmr_isr(0) tmr_isr(1) tmr_isr(2) tmr_isr(3) tmr_isr(4) tmr_isr(11) // 定义中断服务程序

234行是这段代码

王昱顺 发表于 2025-10-11 09:10:29

consoleyou 发表于 2025-10-11 00:22
Rebuild started: Project: TASK_Test
Rebuild target 'Target 1'
User command #1: .\Auto_Keil.exe


我使用了超过31的中断号
你需要使用一个中断号拓展工具来做个补丁
https://www.stcai.com/gjrj 在这里下载

consoleyou 发表于 2025-10-11 09:31:57

王昱顺 发表于 2025-10-11 09:10
我使用了超过31的中断号
你需要使用一个中断号拓展工具来做个补丁
https://www.stcai.com/gjrj 在这里下 ...

好的,我试试,谢谢{:woshou:}

consoleyou 发表于 2025-10-12 12:46:44

我是C语言小白,不知道楼主能不能提供8H8K64U的版本,也就是8位单片机的版本学习一下?set_io.h和set_timer.h都不太会写。

王昱顺 发表于 2025-10-12 16:41:19

consoleyou 发表于 2025-10-12 12:46
我是C语言小白,不知道楼主能不能提供8H8K64U的版本,也就是8位单片机的版本学习一下?set_io.h和set_timer ...

使用stcisp直接生成1ms定时器中断,然后在中断里调用set_task_mode即可

consoleyou 发表于 2025-10-13 09:58:57

王昱顺 发表于 2025-10-12 16:41
使用stcisp直接生成1ms定时器中断,然后在中断里调用set_task_mode即可

谢谢,我琢磨琢磨

STmove 发表于 2025-11-10 17:54:22

很厉害!另外有个疑问哈,task_break();这个括号内条件为真则继续循环,条件为假则跳出循环(我没理解错吧),总感觉有点反直觉,是有什么我没想明白的地方么?当然了,如果没有其他情况,只是恰好就是这样设置了,大佬也不要为这个小问题费心,可能就是我脑回路比较简单,后面用的着的时候我自己改下宏定义就好了。

llyymm 发表于 2026-1-12 15:35:37

看到你这种方法简单实用,我目前使用的都是STC32G的单片机,移植需要注意哪些问题?提前做些准备工作免得一头雾水!先谢了{:baoquan:}

王昱顺 发表于 2026-1-12 16:19:12

llyymm 发表于 2026-1-12 15:35
看到你这种方法简单实用,我目前使用的都是STC32G的单片机,移植需要注意哪些问题?提前做些准备工作免得一头 ...

定时器部分注意一下,适配为1ms基准即可,其他的可以直接用
框架本质是基于宏定义实现的,并无适配问题

llyymm 发表于 2026-1-12 16:20:59

王昱顺 发表于 2026-1-12 16:19
定时器部分注意一下,适配为1ms基准即可,其他的可以直接用
框架本质是基于宏定义实现的,并无适配问题 ...

好的,十分感谢
页: 1 2 3 4 5 6 [7] 8
查看完整版本: 【协程方式】实现【多任务调度 / 多线程】 仅需2byte的RAM 并带有详细视频讲解