用变量给C51定时器赋初值导致定时器定时时间不准确的问题的解决办法
来源:互联网 发布:dnf更新完网络中断 编辑:程序博客网 时间:2024/05/19 03:27
问题描述:用C语言编写51单片机的定时器模块时,发现用定义一个变量去给定时器赋初值时,实际定时时间与计算值不符。
解决办法:之所以不相符,跟51单片机内部机制有关。变量的装载比较麻烦,耗时较长,导致还没将变量值装载到定时器中就运行到下一条语句了,所以初值不准确。方法1:用常量表达式代替变量;方法2:用位运算代替直接的乘除,例:TH0 = t0 / 256;TL0 = t0 % 256;改成:TH0 = t0 >> 8;TL0 = t0 & 0xff;(TL0可以不写,单片机内部机制会自动计算TL0值并自动装载)
解决办法:之所以不相符,跟51单片机内部机制有关。变量的装载比较麻烦,耗时较长,导致还没将变量值装载到定时器中就运行到下一条语句了,所以初值不准确。方法1:用常量表达式代替变量;方法2:用位运算代替直接的乘除,例:TH0 = t0 / 256;TL0 = t0 % 256;改成:TH0 = t0 >> 8;TL0 = t0 & 0xff;(TL0可以不写,单片机内部机制会自动计算TL0值并自动装载)
0 0
- 用变量给C51定时器赋初值导致定时器定时时间不准确的问题的解决办法
- 定时器初值的计算方法
- 可能导致Oozie定时任务执行不准确的问题
- 被final修饰的变量不一定要赋初值
- 变量和数据结构的赋初值
- 变量的初始化和赋初值
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- STM32 定时器 定时时间的计算
- arm定时器初值及公式 的熟悉
- 51单片机定时器初值的计算
- 51单片机定时器初值的计算
- [easyui]datagrid新增一行编辑时,给editor:'numberbox'赋初值不成功的解决办法
- 为什么不能给类里面的非static非const变量赋初值
- MFC中SetTimer定时不准确?试试用多媒体定时器吧
- 关于android 定时器的定时问题
- destoon网站转移空间教程
- 分享bootstarp3.0.2响应式模板-第三弹[Metronic_Admin]
- 《大话处理器》简要学习笔记
- iBeacons
- chrome插件开发API中文版
- 用变量给C51定时器赋初值导致定时器定时时间不准确的问题的解决办法
- multiThread(2)
- 从程序员到项目经理(一):没有捷径
- 在键盘添加视图,inputAccessoryView
- php xml
- 双重检查锁定失败可能性——参照《The "Double-Checked Locking is Broken" Declaration》
- iOS时间相关各种技巧
- 20131224孤独者之旅13
- cvs服务器设置-添加用户-设置用户权限