定时器 消除定时器

定时器:

定时器有两种,setTimeout () setInterval (),二者的区别在于时间到后执行回调函数的次数,setTimeout () 只能执行一次,而 setInterval () 每当间隔这个倒计时一次,就会执行一次回调函数内容


setTimeout ()

  • 时间结束后执行回调函数
  • 只执行一次

setInterval ()

  • 时间结束后执行回调函数
  • 每间隔一次倒计时就会执行一次


 在开始说明定时器前我们先引入一个概念 ------ 回调函数,顾名思义,回调就是回头再调用,在定时器部分,我们在倒计时结束后执行的函数,就叫做回调函数,我们在注册事件时内部的函数也是回调函数


一:setTimeout ( 回调函数,延迟的毫秒数 )

其中可以写成这种直接写函数的形式

 window.setTimeout(function(){
          alert('两秒到啦');
      },2000)

也可以写成这种写函数名的形式(不用加括号!!)

 window.setTimeout(fn,2000)
    
    function fn(){
        alert('两秒到啦');
    }

效果均是延迟两秒后弹出,要注意延迟的时间要写成毫秒数!!


二:setInterval ( 回调函数,延迟的毫秒数 )

记住这个定时器的回调函数时间每过一次就会执行一次,两种函数写法与 setTimeout 相同

<script>
        window.setInterval(function(){
           alert('时间到啦');
        },4000)
    </script>

注意点:

  • window 可以省略
  • 可以采用直接写函数或写函数名
  • 时间一定要写成毫秒数
  • 页面中可能有很多定时器,最好设置标志符号,var time1= window.setTimeout(fn,2000)

消除定时器:

消除定时器有 clearTimeout ()clearInterval ()


clearTimeout ( 要删除的定时器 ):

 <button>关闭</button>
    <script>
        var btn=document.querySelector('button');
        var time1=window.setTimeout(function(){
           alert('倒计时到啦');
        },3000)
        btn.addEventListener('click',function(){
            window.clearTimeout(time1);
        })
    </script>

clearInterval (要删除的定时器):

此方法可以使反复在执行并且调用的计时器中断

<button>关闭</button>
    <script>
        var btn=document.querySelector('button');
        var time1=window.setInterval(function(){
           console.log('倒计时到啦');
        },1000)
        btn.addEventListener('click',function(){
            window.clearInterval(time1);
        })
    </script>

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在使用HAL定时器进行按键检测时,可以采用轮询模式或中断模式。在轮询模式下,可以使用HAL_TIM_Base_Start函数启动定时器,然后在while循环中不断检测按键状态。这种方式需要在每次检测按键之间添加适当的延时来进行消抖,以防止误检测。然而,这种方式会长时间占用单片机的CPU资源,效率较低。\[3\] 另一种方式是使用外部中断加定时器的方式实现按键检测。首先,需要设置外部中断触发方式,并计算预分频系数psc和计数值大小arr来确定定时器的时间。然后,在外部中断回调函数中打开定时器,让其开始计数。当定时器溢出时,关闭定时器,并再次检测按键IO口的电平值。这种方式可以消除按键的抖动,并且不会长时间占用CPU资源,提高了处理器的效率。\[1\] 另外,还可以使用状态机加定时器中断的方式检测按键。将状态切换的代码写在定时器中断服务回调函数中,在主函数中判断按键的有效状态,并发送脉冲来获取计数值。这种方式也可以消除按键的抖动,并提高处理器的效率。\[2\] #### 引用[.reference_title] - *1* *3* [STM32 CubeMx HAL库外部中断检测按键,定时器延时消抖](https://blog.csdn.net/DIVIDADA/article/details/128364061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [HAL学习笔记 - 7 定时器之基本定时器](https://blog.csdn.net/kouqi627/article/details/115353077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西最近怎么样

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值