|
请楼主看看顶楼里下面红色部分是不是笔误:
四、事件的捕获
…………
那么我们来看看HalKeyPoll函数到底在搞什么鬼!
代码中给的注释为:
/* Check for keys */
HalKeyPoll();
于是我们推断这个函数的作用是检查当前的按键情况。进入函数一看,果不其然。虽然这个函数很长很复杂,不过凭借着非凡的聪明才智,我们还是十分清楚的明白了,经过一系列的if语句和赋值语句,在接近函数末尾的地方, keys变量(在函数起始位置定义的)获得了当前按键的状态。最后,有一个十分重要的函数调用。
(pHalKeyProcessFunction) (keys, HAL_KEY_STATE_NORMAL);
pHalKeyProcessFunction这个函数指针指向了哪个函数我们现在依然不清楚,但是为了我们有个清晰而不间断的思路,我在这里先告诉大家。在这里调用的是
void OnBoard_KeyCallback ( uint8 keys, uint8 state )
这个函数。此函数在“ZMain\OnBoard .c”文件中可以找到。在这个函数中,又调用了
void OnBoard_KeyCallback ( uint8 keys, uint8 state )
在这个函数中,按键的状态信息被封装到了一个消息结构体中(对于消息,我们稍后再说)。最后有一个极其重要的函数被调用了。
应该是: byte OnBoard_SendKeys( byte keys, byte state ) |
|