搜索

9

主题

11

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2020-8-21 20:41:03 6520 浏览 0 回复

按键驱动添加定时器消抖

static struct timer_list buttons_timer1;static struct _KEYINFO *irq_pd1;

irqreturn_t irqkey_irq_handler1(int irq, void *data)
{
        irq_pd1 = (struct _KEYINFO *)data;
        mod_timer(&buttons_timer1, jiffies+HZ/1000);
       //内核定义HZ为1000
        return IRQ_HANDLED;

}


static void buttons_timer_function1(unsigned long data)
{
        struct _KEYINFO * pindesc = irq_pd1;

        if (!pindesc)
                return;
       
        if (gpio_get_value(key1.gpio_num))
        {
                input_report_key(irqkey_input, KEY_F1, 0);
                printk("*******KEY_F1 0*************\n");
                input_sync(irqkey_input);       
        }
        else
        {
                input_report_key(irqkey_input, KEY_F1, 1);
                input_sync(irqkey_input);
                printk("*******KEY_F1 1*************\n");
        }
}


proble(){
          init_timer(&buttons_timer1);
         buttons_timer1.function = buttons_timer_function1;
         add_timer(&buttons_timer1);
}





回复

使用道具 举报

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

本版积分规则


登录或注册
快速回复 返回顶部 返回列表