我已成功按下按下按下按下按钮,但是我想加上检测的检测,以区分短按和长按。长按3s。
你有一些想法或参考如何做到这一点?
空白_Button(空白)
{
if((!(getword16(p0_data_reg)&(1 << 0)))))))))
{
keyint_mstime = loop_timer_gettime();
button_flag = 3;
app_easy_timer(10,loop_timer_cb);
}
if(getBits16(sys_stat_reg,per_is_down))
periph_init();
wkupct_register_callback(按_Button);
wkupct_enable_irq(0x000001,0x000001,1,0x00);
if(button_flag == 2)
{
}
if(button_flag == 3)
{
}
}
void user_app_init(void)
{
//初始化制造商特定数据
mnf_data_init();
default_app_on_init();
wkupct_enable_irq(0x000001,0x000001,1,0x00);// lincs liu
}
设备:
嗨Liuluan002,
没有参考应用程序来检测和区分长短的短发,但是一个想法是为每个新闻时间段设定两个不同的定时器,一旦按钮被按下,这两个计时器都应该开始计数。当第一个计时器过去时,应检查按钮是否仍然按下,如果它在SHORT_TIMER_HANDLER()中设置标志(短周期计时器的处理程序)。当长时间经过时,您还应该检查long_timer_handler()如果仍然按下按钮。现在,如果仍然按下该按钮,这意味着交互是一个长按,应该执行长按的指定功能。如果仍然不按此LONG_TIMER_HANDLER()中的按钮,并且设置了来自SHORT_TIMER_HANDLER()的标志,这意味着交互是短按并执行SHORT_PRESS_FUNCTION()。
谢谢mt_dialog.