找回密码
 注册
关于网站域名变更的通知
查看: 204|回复: 3
打印 上一主题 下一主题

一个关于单片机硬件延时的疑惑

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-1-17 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我对硬件定时进行了了解,发现替代的方法有个用定时器来搞的:) |$ [; T0 `- p8 H- J
在定时器中断里设置一个标志位,每当定时器运行到设定的时间,就将该位置置位(定时短)或+1(定时时间较长),然后用外部程序去查询这个标志位,做判断.
1 D4 G! M! m: ~- P2 K" W# A! C0 N. n' {: G# H$ |
但是我又有了个疑惑,对于后者,假如我要定时30毫秒,定时器溢出时间为1ms,标志位用8位无符号8 ?/ o2 D, i6 ~" L) q* |
那到了240的时候,240+30=14 ,溢出了~ 这个怎么处理?
6 e. M1 k' T3 ~$ l, I难道我把最大阈值设定为225么? 那假如我有多个不同的延时需要进行处理呢?.... 没办法呀~ 难道要设置最大延时限制值么?...
1 d8 o! N: D. K( D9 ], k7 s+ n5 N" V/ z- J3 Z' n; }
让人很是摸不着头脑,求大家帮助一下我呀~
6 I& i2 D+ K. r( u' K2 W6 e+ r0 I3 g2 s: ~, E4 s/ v0 O; [4 P6 b

9 R" q2 q4 ~( r! n' d
( E( Y, M  y% t  y" Y# W
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-1-17 13:11 | 只看该作者
    你用的是什么单片机
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-1-17 13:16 | 只看该作者
    单片机都有对应的例子程序
    ; ^# i3 W, u6 t如果定时1ms,时间到后,就会进入中断程序,这时候中断有个计数器加1," z# j9 K. i( d
    再用一个判断句
    1 c( v0 M2 g* L/ |4 i) m: Rif(num>30)
    ) b( P. j, J4 U$ S产生你需要的标志,

    该用户从未签到

    4#
    发表于 2022-1-17 14:18 | 只看该作者
    标志位可以随时清零。) q) z/ R* W9 A
    等到了30ms 执行操作后,顺便清零标志位,
    6 s7 t& }( f! K7 R. i' M1 e5 F+ E
    * }: K+ f% y+ s, @

    ( T8 ]( e2 d. e/ l. Y( C可以设置多个变量 例如 flag_300ms = 0;  上面每次到30ms 就加一;
    8 u- j; _4 o8 c然后大循环里面判断flag_300ms ==9,执行操作,清零  flag_300ms
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-9-21 01:39 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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