你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

分享个时间片任务调度内核

[复制链接]
技术范儿 发布时间:2016-11-21 13:27
       初来乍到,意外弄了一份代码,还挺好用。懂的朋友拿走,废话不多说直接撸代码!
  1. #include "timesysto.h"

  2. struct Timer timer1;
  3. struct Timer timer2;

  4. void timer1_callback()
  5. {
  6.     printf("timer1 timeout!\r\n");
  7. }

  8. void timer2_callback()
  9. {
  10.     printf("timer2 timeout!\r\n");
  11. }

  12. int main()
  13. {
  14.         timer_init(&timer1, timer1_callback, 1000, 1000); //1s loop
  15.         timer_start(&timer1);
  16.         
  17.         timer_init(&timer2, timer2_callback, 50, 0); //50ms delay
  18.         timer_start(&timer2);
  19.         
  20.         while(1) {
  21.             
  22.             timer_loop();
  23.         }
  24. }
复制代码


timesysto.zip

下载

1.1 KB, 下载次数: 332

源代码

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

收藏 2 评论12 发布时间:2016-11-21 13:27

举报

12个回答
zero99 回答时间:2016-11-21 13:29:19
学习了
Inc_brza 回答时间:2016-11-21 13:43:42
原创?
这个定时器模块在amobbs看过。
原理就是使用单链把所有用户定时器串联起来!
其实个人觉得应该加多一个尾链比较好!因为每次增加一个定时器,你必须要查询到链的末端才能完成init
功能,如果加多一个尾节点,只需要对尾节点的前一个链的末端进行接驳就好了!
技术范儿 回答时间:2016-11-21 13:48:55
本帖最后由 技术范儿 于 2016-11-21 13:50 编辑
Inc_brza 发表于 2016-11-21 13:43
原创?
这个定时器模块在amobbs看过。
原理就是使用单链把所有用户定时器串联起来!

谢谢建议,意外收获自阿莫,你说的那个我也有,过段时间发
andypanfan 回答时间:2016-12-12 09:07:17
写的非常好,谢谢分享
斜阳__ 回答时间:2016-12-12 09:13:28
每个任务都用一个定时器太浪费了吧
技术范儿 回答时间:2016-12-12 10:18:48
斜阳__ 发表于 2016-12-12 09:13
每个任务都用一个定时器太浪费了吧

看好,共用一个
5265325 回答时间:2016-12-12 10:40:27
wolfgang2015 回答时间:2016-12-12 10:46:21
这个代码还缺东西,回调函数的定义等等,这是RTOS最初级的东东,不过要完善还要经过漫长的路要走.
nat-牛 回答时间:2017-8-22 16:09:17
技术范儿 发表于 2016-11-21 13:48
谢谢建议,意外收获自阿莫,你说的那个我也有,过段时间发

另外一份完善一些的代码你有吗?麻烦发一下,谢谢谢谢
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版