内核定时器的使用和按键防抖原理

本文介绍了内核定时器的使用步骤,包括声明、初始化、配置、激活和释放,并详细阐述了其在按键防抖动中的应用。通过设置定时器在按键按下后10ms执行,避免因机械振动引起的重复中断,确保输入的稳定性。
摘要由CSDN通过智能技术生成

内核定时器可以实现软中断,在某一时刻执行特定的函数。如何使用它呢?主要五步:声明、初始化、配置、激活、释放。

在使用之前,先讲解一个最重要的结构体:

struct  timer_list {

struct list_head entry,

unsigned long expires,

void (*function)(unsigned long ),

unsigned long data,

struct  timer_base_s *base,

}

function:定义了定时器超时处理函数,从使用的角度来将是最关键的。

expires:定义了相对目前的延时时间。当前时间用jiffiers来度量,延时一秒用expires=jiffiers+Hz,延时10秒就是expires=jiffiers+10*Hz,延时10ms就是expires=jiffiers+Hz/100。如果没有对其初始化,或者初始化为0,则激活定时器之后,内核会拿expires和jiffiers比较,当expires<jiffiers是,定时器就已经超时,则超时处理函数不会执行。

data:传递给超时处理函数function的参数。如果函数function不需要传递参数,则data可以不用配置。

另外两个参数不需要我们配置,由内核帮我们完成。

entry:添加到内核链表

base:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值