找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 7009 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-10-17 10:47

正文摘要:

关于51单片机定时器的问题,初始化一次,中断函数一次。请教。

回复

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

这个定时器, 就是同样道理, 每次漏完 就要去给值.   而第一次, 是不是也要给值的啊
ID:612392 发表于 2020-10-20 08:24
因为TH, TL在你定时器启动后,就已经自动计数到0进入中断了,此时TH, TL的值已经是0了,所以要重装。除非你用定时器的模式2,自动重装,每次定时器都按照你的初始赋值进行自动重装。
ID:518902 发表于 2020-10-19 23:14
单片机系统上电的时候 初始化一次
然后等定时到了,进了中断,再次进行重装载,重新定时,这个模式不i是自动重装载模式噢朋友
ID:453974 发表于 2020-10-19 20:16
一个是初始化,一个是重装载
ID:831323 发表于 2020-10-18 16:39
因为初始化之后在定时器进入中断时,如果没有再次设置初值,定时器会自动默认初值为0,除了定时器的方式2,因为有自动重装载,不用另外赋初值。
ID:831355 发表于 2020-10-18 15:38
因为这样才能精确定时,否则定时器溢出后产生中断,然后进入中断函数,由于函数中没有对定时器设置初值,此时定时器默认高低位初值都为0,重新进行计时 ,当然也有例外,比如方式2,只需要在主函数中装一次初值,然后中断函数中就不用再装初值了,其他几个方式都需要在中断函数中重新载入初值。
ID:547021 发表于 2020-10-17 20:54
是因为51的定时器四种方式中,只有方式2是自动重装载初值(THX里面的初值会赋予给TLX),其他的都在中断后需要重新装载初值
ID:701852 发表于 2020-10-17 18:14
初始化:定义初值,没有定义就TH=TL=65536
中断函数:每次执行中断就重定义初值一次,要是设置自动重装就不用设置,没有定义就TH=TL=65536

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

Powered by 单片机教程网

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