微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > ZHA 按键如何实现识别长按短按

ZHA 按键如何实现识别长按短按

时间:10-02 整理:3721RD 点击:

如题如何实现长短按

请在官网下载Z-Stack Light 协议栈,在里面Zlight的设备里面,实现了这个功能,你可以看下

static void zllSampleLight_HandleKeys( byte shift, byte keys )
{
(void)shift; // Intentionally unreferenced parameter
#ifdef HAL_BOARD_ZLIGHT
// Zlight has only a single button
static uint32 keyPressTime = 0;
if ( keys )
{
keyPressTime = osal_getClock();
}
else //key released
{
if ( keyPressTime )
{
keyPressTime = ( osal_getClock() - keyPressTime );
if ( keyPressTime <= KEY_HOLD_SHORT_INTERVAL )
{
zllTarget_PermitJoin( PERMIT_JOIN_DURATION );
}
else if ( keyPressTime > KEY_HOLD_LONG_INTERVAL )
{
zllTarget_ClassicalCommissioningStart();
}
else
{
zllTarget_ResetToFactoryNew();
}
keyPressTime = 0;
}
}

你好,我想现在也遇到了同样的问题,把zll的例子研究了一天,想改成自己的按键引脚,怎么都实现不了,长按和短按的功能,请问你是怎么实现的,能不能分享下,太谢谢你了!

这部分的代码都是公开的,你要先确定下你使用的I/O口,协议栈里面有没有其他的地方使用到。

 不好意思  大牛  ~~本人小白   有点问题请求 ~~望赐教

为什么我按照你的代码写    zigbee开发板上的按钮并没有根据长按而发送指定的消息~~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top