找回密码
 立即注册
楼主: liuyan***

求助:定时器的计时问题

[复制链接]
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

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

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

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

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

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

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

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

    点评

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

    使用道具 举报

  • TA的每日心情
    开心
    17 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

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

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

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

    使用道具 举报

  • TA的每日心情
    开心
    17 小时前
  • 签到天数: 137 天

    [LV.7]常住居民III

    37

    主题

    873

    回帖

    3990

    积分

    荣誉版主

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

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

    点评

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

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

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

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    20

    主题

    1039

    回帖

    2459

    积分

    金牌会员

    积分
    2459
    发表于 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的代码区分出来。

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-3 21:12 , Processed in 0.066358 second(s), 56 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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