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检测是否准确。如果要修改为其它定时器,就进行类似的操作,要细细检测初始化代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)