找回密码
 立即注册
查看: 37|回复: 7

第六期--AI8051U(擎天柱)--定时器多任务调度

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-08-01 08:29:27
已绑定手机

4

主题

9

回帖

58

积分

注册会员

积分
58
发表于 昨天 21:31 | 显示全部楼层 |阅读模式
main:

  1. char *USER_DEVICEDESC = NULL;
  2. char *USER_PRODUCTDESC = NULL;
  3. char *USER_STCISPCMD = "@STCISP#";
  4. void main(void)
  5. {
  6.         Sys_init();                                                                                //系统初始化
  7.         usb_init();                                     //USB CDC 接口配置
  8.     IE2 |= 0x80;                                    //使能USB中断
  9.         Timer0_Init();                                                                        //定时器初始化
  10.     EA = 1;                                                                                        //IE |= 0X80;
  11.        
  12.         while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
  13.        
  14.         while(1)
  15.         {
  16.                
  17.         if (bUsbOutReady)                                                        //如果接收到了数据
  18.         {
  19.             //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
  20.                        
  21.             usb_OUT_done();                                                        //
  22.         }
  23.                 Task_Pro_Handler_Callback();                                //执行功能函数
  24.         }
  25. }
  26. void Timer0_Isr(void) interrupt 1                //1MS执行一次
  27. {
  28.         Task_Marks_Handler_Callback();                                        //系统计时
  29. }
复制代码

回复

使用道具 举报 送花

3

主题

2105

回帖

1058

积分

等待验证会员

积分
1058
发表于 昨天 21:33 | 显示全部楼层
第六期--AI8051U(擎天柱)--定时器多任务调度 main:

在AI8051U(擎天柱)平台中,定时器多任务调度是实现系统实时性与功能模块协同运行的关键机制。通过合理配置定时器中断,结合任务状态标记与回调函数机制,可有效提升系统的响应能力与资源利用率。

在本示例代码中,main() 函数首先完成系统初始化及USB接口配置,随后开启定时器并进入主循环。主循环中通过 TaskProHandlerCallback() 实现任务处理逻辑,该函数通常用于调用各功能模块的执行函数。同时,通过判断 bUsbOutReady 标志位,可检测USB数据接收情况,并在接收到数据后进行相应处理。

定时器部分由 Timer0Init() 初始化,中断服务函数 Timer0Isr() 以1ms为周期触发,用于维护任务调度时序。在实际应用中,可通过在 Timer0Isr() 中更新任务计数器或标志位,实现基于时间片的任务切换或事件触发。

此外,代码中涉及的 USERDEVICEDESC、USERPRODUCTDESC 及 USERSTCISPCMD 等变量,可用于定义设备描述信息及通信协议命令,为后续固件升级、设备识别等功能提供基础支持。

综上,AI8051U平台通过定时器中断与任务回调机制,实现了高效的多任务调度与系统控制,为复杂应用场景下的嵌入式开发提供了可靠的技术支撑。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:145
  • 最近打卡:2025-08-01 10:06:57

762

主题

1万

回帖

1万

积分

管理员

积分
18316
发表于 昨天 22:42 | 显示全部楼层
在 同一个帖子中打卡,发在 打卡版块
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-08-01 08:29:27
已绑定手机

4

主题

9

回帖

58

积分

注册会员

积分
58
发表于 10 小时前 | 显示全部楼层
神*** 发表于 2025-7-31 22:42
在 同一个帖子中打卡,发在 打卡版块

好的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-08-01 08:35:30

24

主题

447

回帖

2866

积分

版主

积分
2866
QQ
发表于 10 小时前 | 显示全部楼层

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接



QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-08-01 08:35:30

24

主题

447

回帖

2866

积分

版主

积分
2866
QQ
发表于 10 小时前 | 显示全部楼层
在同一帖子中以评论的方式打卡,将之前的整合到一起
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-08-01 08:29:27
已绑定手机

4

主题

9

回帖

58

积分

注册会员

积分
58
发表于 7 小时前 | 显示全部楼层
32位80*** 发表于 2025-8-1 08:37
在同一帖子中以评论的方式打卡,将之前的整合到一起

都更新到学习历程里了,之前那些多余的要删掉吗

点评

整合好之后将之前的删除即可  详情 回复 发表于 7 小时前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:47
  • 最近打卡:2025-08-01 08:35:30

24

主题

447

回帖

2866

积分

版主

积分
2866
QQ
发表于 7 小时前 | 显示全部楼层
winter-*** 发表于 2025-8-1 11:34
都更新到学习历程里了,之前那些多余的要删掉吗

整合好之后将之前的删除即可
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-1 18:59 , Processed in 0.699015 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表