如题如何实现长短按
VV:
请在官网下载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的例子研究了一天,想改成自己的按键引脚,怎么都实现不了,长按和短按的功能,请问你是怎么实现的,能不能分享下,太谢谢你了!
VV:
回复 一米阳光:
这部分的代码都是公开的,你要先确定下你使用的I/O口,协议栈里面有没有其他的地方使用到。
Jian Yi Cao:
回复 VV:
不好意思 大牛 ~~本人小白 有点问题请求 ~~望赐教
为什么我按照你的代码写 zigbee开发板上的按钮并没有根据长按而发送指定的消息~~~