找回密码
 立即注册
楼主: liuyang21168

求助:定时器的计时问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-5 17:13:34 | 显示全部楼层
LAO*** 发表于 2024-1-5 15:31
你要区分定时器, 是设置成手动装载 ? 还是自动装载 模式 ?

手动装载  更改立刻生效 .  自动装载 要到 定 ...

第一个视频中有 我的定时器的初始化函数,,使用的定时器0的16位不重装载模式,,
您说的手动装载是什么模式?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-5 17:14:15 | 显示全部楼层
LAO*** 发表于 2024-1-5 15:31
你要区分定时器, 是设置成手动装载 ? 还是自动装载 模式 ?

手动装载  更改立刻生效 .  自动装载 要到 定 ...

您可以再看看我录下来的视频。。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-5 17:19:47 | 显示全部楼层
LAO*** 发表于 2024-1-5 15:31
你要区分定时器, 是设置成手动装载 ? 还是自动装载 模式 ?

手动装载  更改立刻生效 .  自动装载 要到 定 ...

如果您说的  手动装载 就是 不自动重装载模式的话,,,我这里测试的结果是如果在TR0在开启的状况下 是不会改变TL0与TH0,和您的 更该立刻生效这个结论冲突,,故 可能我的条件错误,手动装载模式 不是 不自动重装载模式。
还能进一步解释解释么

点评

自动重载, 是 定时时间到 , 立刻置位定时时间到中断标志, 同时也重装定时器, 哪怕中断级别低响应延迟, 或者中断暂时关闭, 也是如此操作. 手动装载(非自动重装), 定时时间到 (计时从 FFFF 到 0), 立刻置位定时时间到  详情 回复 发表于 2024-1-6 06:57
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-1-6 06:57:36 | 显示全部楼层
_奶*** 发表于 2024-1-5 17:19
如果您说的  手动装载 就是 不自动重装载模式的话,,,我这里测试的结果是如果在TR0在开启的状况下 是不 ...

自动重载, 是 定时时间到 , 立刻置位定时时间到中断标志, 同时也重装定时器, 哪怕中断级别低响应延迟, 或者中断暂时关闭, 也是如此操作.

手动装载(非自动重装), 定时时间到 (计时从 FFFF 到 0), 立刻置位定时时间到中断标志, 继续计数(即你所理解的 从 0 开始计数), 可随时手动更新(装载) TH0,TL0,  至于 手动装载不了 (即TR0置位, 无法更新) TH0, TL0 , 则只能证明, STC 的定时器, 与传统的 8051 不兼容.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-1-6 07:02:35 | 显示全部楼层
如果 定时器0 ,  设置成的16位不重装载模式(手动装载),

在TR0置位, 无法更新 TH0, TL0 , 那应该是  STC 的定时器 的 BUG, 与传统 8051 不兼容.

点评

大佬 明白了!!其实我只有学习的时候才用过传统的8051单片机(是89C52单片机,应该是传统的吧)后面就一直都用的stc15w之后的单片机了。  发表于 2024-1-6 08:38
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-6 08:42:01 | 显示全部楼层
LAO*** 发表于 2024-1-6 07:02
如果 定时器0 ,  设置成的16位不重装载模式(手动装载),

在TR0置位, 无法更新 TH0, TL0 , 那应该是  STC  ...

嗨,,这把也不能算是bug吧,只能说是stc对传统c51的发展把
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-1-6 09:06:05 | 显示全部楼层
本帖最后由 _奶咖君_ 于 2024-1-6 17:25 编辑

好了 可以总结一下了:
1.楼主的问题,对于STC的单片机,只要是 对应定时器的运行控制位(例如TR0。。。)在开启的状态下,定时器就会一直计数。从3#和回答和我17#与18#的调试视频中也可以看得出计数是一直运行的。

2.自动重装载模式与不自动重装载模式这两种模式对于计数值的影响就是在发生上溢(PS:这五个定时器都是向上计数,不会发生下溢。。)时,
  自动模式下THn TLn,会重新装载成内部的重载寄存器的值;
  不自动模式下THn TLn 会从0开始计数;
第2点的这些均可以在手册中找到对应描述。

3.不关闭对应定时器的运行控制位时,不能对计数值进行装载或者叫更新。
那么我认为我在13#中贴出软件中的定时器计算器中对于不自动重装载模式下,在中断中直接对计数寄存器赋值的语句,可能在某一些老旧型号上类似传统8051单片机上可用。对于新的STC单片机上不可用是无效的。。这个可能需要姚总来说明一下了,如果确实是上述猜想,最好是能在代码中注释一下,或者干脆把现代的STC单片机和8051的代码区分出来。

参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:117
  • 最近打卡:2025-03-06 09:50:21

6

主题

142

回帖

638

积分

高级会员

积分
638
发表于 2024-11-11 10:30:34 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-12 11:01:44 | 显示全部楼层
会计时,只要不关TRx,与中断是否没有关系,如果停止,定时没法保证精准,失去意义了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:03 , Processed in 0.447688 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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