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

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

[复制链接]
技术范儿 发布时间: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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版