找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1780|回复: 9
打印 上一主题 下一主题
收起左侧

单片机定时器赋值问题

[复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2021-7-13 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
12M晶振,16位定时器
        
已知  10微秒  65416
Y等于2,算20微秒的定时器赋值,有什么简单,不占单片机计算量的算法吗
20微秒超过INT范围怎么办

        TL1 =(65536-(uint)(65416*y))%256;                //设置定时初始值
        TH1 =(65536-(uint)(65416*y))/256;                //设置定时初始值

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:914633 发表于 2021-7-13 11:46 | 只看该作者
12M晶振 10微秒 应该是TH1=(65536-10)%256;TL1=(65536-10)/256;
回复

使用道具 举报

板凳
ID:914633 发表于 2021-7-13 11:49 | 只看该作者
定时20微秒 TH1=(65536-20)%256;TL1=(65536-20)/256;
回复

使用道具 举报

地板
ID:276663 发表于 2021-7-13 12:19 | 只看该作者
超过就一直中断,不能太短!
回复

使用道具 举报

5#
ID:47286 发表于 2021-7-13 13:20 | 只看该作者
这种赋值为什么一定要去片子去算呢 不如自己在电脑上用excel算好做个表 结果用code写在片子里 当需要改变的时候直接读code不好吗 不是单片机不能干 但乘除取整运算怎么都算耗费时间的运算尤其在中断里 毕竟单片机性能摆在那
回复

使用道具 举报

6#
ID:298123 发表于 2021-7-13 15:24 | 只看该作者
dzbj 发表于 2021-7-13 13:20
这种赋值为什么一定要去片子去算呢 不如自己在电脑上用excel算好做个表 结果用code写在片子里 当需要改变的 ...

编译器会替MCU做
回复

使用道具 举报

7#
ID:451718 发表于 2021-7-13 18:11 | 只看该作者
短于100us的定时器中断都要慎用, 占用资源太严重了。 如果是要做PWM,尽量用硬件PWM来做。
回复

使用道具 举报

8#
ID:47286 发表于 2021-7-14 00:34 来自手机 | 只看该作者
hz_dyg 发表于 2021-7-13 15:24
编译器会替MCU做

这种直接赋值的编译器也做么 那编译器怎么区分是算法还是值
回复

使用道具 举报

9#
ID:827550 发表于 2021-7-14 08:40 | 只看该作者
sic里有快捷生成定时器
回复

使用道具 举报

10#
ID:298123 发表于 2021-7-14 09:45 | 只看该作者
dzbj 发表于 2021-7-14 00:34
这种直接赋值的编译器也做么 那编译器怎么区分是算法还是值

你能想到的,做编译器的人应该比我们都厉害!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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