TI中文支持网
TI专业的中文技术问题搜集分享网站

ZC_light_cc26x2lp 单播 ZED_switch_cc26x2lp工程, 协调器收到switch按键信号后怎样与自身应用层定义的events关联起来?

在static void zclSampleLight_process_loop(void):  

          if(events & SAMPLEAPP_KEY_EVT)
            {
                // Process Key Presses
                zclSampleLight_processKey(keys);
                keys = 0;
                events &= ~SAMPLEAPP_KEY_EVT;
            }

是通过初始化阶段通过 Board_Key_initialize(zclSampleLight_changeKeyCallback);调用:

    /* Setup keycallback for keys */
    Timer_construct(&keyChangeClock, board_key_changeHandler,
                    (KEY_DEBOUNCE_TIMEOUT),
                    0, false, 0);

    /* Set the application callback */
    appKeyChangeHandler = appKeyCB;

来实现的吗???

static void zclSampleLight_changeKeyCallback(uint8_t keysPressed)
{
    keys = keysPressed;

    events |= SAMPLEAPP_KEY_EVT;

    // Wake up the application thread when it waits for clock event
    Semaphore_post(sem);
}

函数    Timer_construct(&keyChangeClock, board_key_changeHandler,
                    (KEY_DEBOUNCE_TIMEOUT),
                    0, false, 0); 是什么用途???
           

Alvin Chen:

回调函数触发定时器,定时触发events,你自己去写一个events你就可以知道是怎么一个逻辑。
有一个SAMPLEAPP_END_DEVICE_REJOIN_DELAY的events你可以去根据这个梳理一下。

user5325333:

回复 Alvin Chen:

events 不是应该ZC接收到相应的命令来触发吗,如果没有key的event发过来,用定时器来触发,岂不是错误的吗? 但调试的时候并不是定时触发key的event的??? 好疑惑???

YiKai Chen:

這個timer是DEBOUNCE用的

Alvin Chen:

回复 Alvin Chen:

定时器写的很清楚;KEY_DEBOUNCE_TIMEOUT
就是消抖

赞(0)
未经允许不得转载:TI中文支持网 » ZC_light_cc26x2lp 单播 ZED_switch_cc26x2lp工程, 协调器收到switch按键信号后怎样与自身应用层定义的events关联起来?
分享到: 更多 (0)