找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机定时器为什么需要两次重装初值?

[复制链接]
跳转到指定楼层
楼主
ID:595380 发表于 2020-10-17 10:47 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
关于51单片机定时器的问题,初始化一次,中断函数一次。请教。

16029027678904734684870789470607.jpg (654.54 KB, 下载次数: 78)

16029027678904734684870789470607.jpg

16029027921572151485092670365269.jpg (746.51 KB, 下载次数: 66)

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

使用道具 举报

沙发
ID:701852 发表于 2020-10-17 18:14 | 只看该作者
初始化:定义初值,没有定义就TH=TL=65536
中断函数:每次执行中断就重定义初值一次,要是设置自动重装就不用设置,没有定义就TH=TL=65536
回复

使用道具 举报

板凳
ID:547021 发表于 2020-10-17 20:54 | 只看该作者
是因为51的定时器四种方式中,只有方式2是自动重装载初值(THX里面的初值会赋予给TLX),其他的都在中断后需要重新装载初值
回复

使用道具 举报

地板
ID:831355 发表于 2020-10-18 15:38 来自手机 | 只看该作者
因为这样才能精确定时,否则定时器溢出后产生中断,然后进入中断函数,由于函数中没有对定时器设置初值,此时定时器默认高低位初值都为0,重新进行计时 ,当然也有例外,比如方式2,只需要在主函数中装一次初值,然后中断函数中就不用再装初值了,其他几个方式都需要在中断函数中重新载入初值。
回复

使用道具 举报

5#
ID:831323 发表于 2020-10-18 16:39 来自手机 | 只看该作者
因为初始化之后在定时器进入中断时,如果没有再次设置初值,定时器会自动默认初值为0,除了定时器的方式2,因为有自动重装载,不用另外赋初值。
回复

使用道具 举报

6#
ID:453974 发表于 2020-10-19 20:16 | 只看该作者
一个是初始化,一个是重装载
回复

使用道具 举报

7#
ID:518902 发表于 2020-10-19 23:14 | 只看该作者
单片机系统上电的时候 初始化一次
然后等定时到了,进了中断,再次进行重装载,重新定时,这个模式不i是自动重装载模式噢朋友
回复

使用道具 举报

8#
ID:612392 发表于 2020-10-20 08:24 | 只看该作者
因为TH, TL在你定时器启动后,就已经自动计数到0进入中断了,此时TH, TL的值已经是0了,所以要重装。除非你用定时器的模式2,自动重装,每次定时器都按照你的初始赋值进行自动重装。
回复

使用道具 举报

9#
ID:115923 发表于 2020-10-20 08:39 | 只看该作者
哈哈哈,  第一次, 你可以不用,  就影响开机上电第一次的时间,
后面 ,就好比   一桶水, 慢慢漏,   漏的时间就是你定时时间,   等漏完的时候, 你是不是有要加满 ?

这个定时器, 就是同样道理, 每次漏完 就要去给值.   而第一次, 是不是也要给值的啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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