找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 882|回复: 10
收起左侧

小小调度器问星整理版[可设置选择8/16/32位] 极小资源MCU操作系统

  [复制链接]
xyb851 发表于 2020-7-3 10:19 | 显示全部楼层 |阅读模式
在原作者smset基础上增加1、可以在宏定义里选择8位 16位还是32位2、定义任务用TASK开头
  1. //  任务0 任务定义以TASK开头
  2. TASK task0(){
  3. _SS
  4.   while(1){
  5.    WaitX(50);
  6.    LED0=!LED0;   
  7.   }
  8. _EE
  9. }
复制代码

3、增加实时性更高的等待某条件定义。
4、更多详细信息请参考附件内容。


最近修改记录:

2020-07-03
  1、增加 普通函数无阻塞延时开关宏定义,方便在不使用普通函数无阻塞延时功能时减少RAM占用和更新任务的时间:
      NORMALDELAY  默认为0关闭,修改为1则打开
  
  2020-04-17
   1、同步smset的小小调度器1.11(16位定时器版),新增的等待某个条件或超时溢出
       WaitUtilT(A,TimeOut)
   2、在smset的WaitUtilT(A,TimeOut)基础上,增加等待某个条件为某个值或超时溢出
       WAITUNTILT(A,VAL,TimeOut)
  
  2019-05-30
  1、增加等待某个条件为某个值或超时溢出
      A条件变量;VAL条件值;TaskVAL超时值,不能为0,和TaskVAL的位数调度器定义的位数一样;ONLY超时判断唯一序号
      WAITUNTILO(A,VAL,TaskVAL,ONLY)
      每增加一个超时判断会增加一个调度器位数对应内存占用
  2、添加 void runTasks(void); 声明,确保部分编译器不会报错
  
  2019-05-29
   1、整合群主semet的普通函数无阻塞延时
   2、添加变量位数类型定义,方便根据编译器环境定义修改
   注意:无阻塞延时 只能被主任务,以及主任务调用的函数,及主任务调用的函数调用的函数使用

51hei.png
全部资料51hei下载地址:
小小调度器1.1.6问星整理版.zip (2.95 KB, 下载次数: 15)

评分

参与人数 2黑币 +62 收起 理由
jzbas + 12 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

sync 发表于 2021-4-8 14:19 | 显示全部楼层
赞个,后续还有更新吗?准备试试看
回复

使用道具 举报

cma_ecnu 发表于 2021-1-9 11:35 | 显示全部楼层
有简单的应用指导说明和具体应用的实例介绍吗?三个LED,三个任务,不能充分说明系统真正的实用价值。
回复

使用道具 举报

cma_ecnu 发表于 2021-1-9 11:29 | 显示全部楼层
支持,下载详细学习一下
回复

使用道具 举报

一束光的旅程 发表于 2020-12-28 09:18 | 显示全部楼层
编译后出现test.c(99): warning C294: unreachable code。这个怎么消除呢?
回复

使用道具 举报

一束光的旅程 发表于 2020-12-27 10:25 | 显示全部楼层
谢谢楼主,这个不错。能看懂,期待更新。
回复

使用道具 举报

 楼主| xyb851 发表于 2020-12-14 10:10 | 显示全部楼层
2020-11-06
    1、增加 #define WAITUTILTRTYPE 0         //WaitUtilTR 超时等待判断类型选择宏
        0=简单,WaitUtilTR(A,TimeOut,TINDEX) TINDEX:超时等待索引只能0-7,每个WaitUtilTR的索引不能重复,只支持8个实时性高的超时判断;
        1=灵活 自定义变量,WaitUtilTR(A,TimeOut,T1FLAY) T1FLAY:1个调度器时钟周期标志变量,需在调度器时钟周期定时器中断里将变量置1。
        简单调用示例:WaitUtilTR(f.b0,2,0);

2020-11-05
    1、修改“_count”赋初值的位置,使之理合理
    2、修改“WaitUtilTR(A,TimeOut)、WAITUNTILTR(A,VAL,TimeOut)”定义,解决实时性高的判断等待超时时间不准的问题
        增加“T1FLAY”一个调度器周期标志变量参数,变为“WaitUtilTR(A,TimeOut,T1FLAY)、WAITUNTILTR(A,VAL,TimeOut,T1FLAY)”
        使用方式请参考例子
小小调度器1.2.3问星整理版.rar (5.06 KB, 下载次数: 17)
回复

使用道具 举报

jzbas 发表于 2020-12-14 00:52 | 显示全部楼层
赞赞赞
回复

使用道具 举报

 楼主| xyb851 发表于 2020-11-4 14:01 | 显示全部楼层
重要更新!!!
2020-11-04
  1、修复超时判断只能生效1次的BUG(群友"上善若水"发现)
     在WaitUtilT(A,TimeOut)、WAITUNTILT(A,VAL,TimeOut)、WaitUtilTR(A,TimeOut)、WAITUNTILTR(A,VAL,TimeOut)定义里增加”_count=TimeOut;“


小小调度器1.2.1问星整理版.rar (3.64 KB, 下载次数: 11)
回复

使用道具 举报

51hei团团 发表于 2020-10-26 03:13 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

 楼主| xyb851 发表于 2020-10-25 14:15 | 显示全部楼层
2020-10-15
  1、整合SETJMP版.可通过定义SETJMP切换
     #define SETJMP 0            //版本选择:0=SWINCH版 1=SETJMP版

  2020-10-14
  1、增加LCBIT宏定义来设置_lc变量类型.
          #define LCBIT 0                        //选择_lc的变量类型: 0=8位;1=16位.
          PICC高版本编译器宏不支持__LINE__%255运算,LCBIT定义需设置为1。代价就是每个任务多占一个字节的RAM.
     其它编译器如果不报错,建议 LCBIT 设置为0,和原来一样.

小小调度器1.2.0问星整理版.rar (3.32 KB, 下载次数: 6)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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