【RTX51 Tiny高级】14-修改默认产生时间片的定时器T0为其它定时器

01 - 修改默认定时器T0的场合

  为什么要修改RTX Tiny的默认定时器T0,具有以下2个场合:
  1、T0已经有用途。在本来已经完成的系统下移植RTX Tiny,本来的系统定时器T0已经有比较复杂的用途,因此不适合使用T0作为Tiny的定时器。
  2、对时基要求高。51系列的T0都不具备自动重载功能,意味着定时器的时基需要消耗掉装值的时间,如果时基是us级别,那么这个操作不能被接受,因此需要改为其它具有自动重载功能的定时器(比如T2)。

02 - 修改的办法

  以修改为T2自动重载为例子,需要修改若干个文件、在Tiny源代码中导出新的Lib库以及修改项目配置,现在我们一个个来

修改Conf_tny.A51文件,左边为官网文件,右边为修改文件

  1、添加T2的相关寄存器定义
在这里插入图片描述
在这里插入图片描述
  2、每次中断,需要清T2的中断标志
在这里插入图片描述
  3、删除原来T0的手动载值,因为T2是自动重载的
在这里插入图片描述
  4、把原本T0的初始化改T2的初始化
在这里插入图片描述

修改官网的Tiny源代码工程

  1、进入Keil的安装路径下找到Tiny源代码:C:\Keil_v5\C51\RtxTiny2\SourceCode,打开工程,添加ET2的定义,按Ctrl+F,查找ET0,把下列的ET0全部换成ET2
在这里插入图片描述

  2、编译,在路径下得到新的Lib库文件
在这里插入图片描述

修改自己的工程配置

  打开Option,把system选择为None,然后把上面编译出来的库改个名字,加到自己的工程中

在这里插入图片描述
  到底,大功告成,在Conf_tny.A51中配置时间片,然后简单跑个delay检测是否准确。如果要修改为其它定时器,就进行类似的操作,要细细检测初始化代码


  • 01-【RTX51 Tiny入门】-RTX51 Full & Tiny简介
  • 02-【RTX51 Tiny入门】-资源占用情况
  • 03-【RTX51 Tiny入门】-内核组成
  • 04-【RTX51 Tiny入门】-任务和调度器
  • 05-【RTX51 Tiny入门】-OS API函数
  • 06-【RTX51 Tiny入门】-查看RTX51 Tiny官方例程
  • 07-【RTX51 Tiny入门】-使用RTX51 Tiny
  • 08-【RTX51 Tiny入门】-Conf_tny.A51配置文件
  • 09-【RTX51 Tiny初级】-K_TMO与K_IVL的区别和使用场合
  • 10-【RTX51 Tiny初级】-os_send_signal()和os_set_ready()的区别和使用场合
  • 11-【RTX51 Tiny初级】-os_wait和os_switch_task区别和使用场合
  • 12-【RTX51 Tiny初级】-解决多重调用问题(MULTPLE CALL TOSEGMENT)
  • 13-【RTX51 Tiny高级】-进行Task的划分与拆分
  • 14-【RTX51 Tiny高级】-修改默认产生时间片的定时器T0为其它定时器
  • 15-【RTX51 Tiny高级】-考虑Round-Robin的开启与关闭
  • 16-【RTX51 Tiny高级】-解决Task之间的通讯和耦合问题
  • 17-【RTX51 Tiny高级】-Task ID隐藏的优先级问题
  • 18-【RTX51 Tiny高级】-系统架构的设计
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值