大家好、我正在使用我的器件、在 ZStack 2.4.0上运行、并且我将 Project Reference 用作 SampleLight。
我的板已连接两个关键开关、SW1作为 P0_4、SW2作为 P0_5。
主要思路是根据按下的 SW1或 SW2键打开或关闭照明开关。
最初、我更改了一些代码行、以支持这些文件中的新端口(P0_4和 P0_5)、从而为我的板提供与代码交互的功能:
hal_borad_cfg.h
/*------------------------------------------------
*按钮配置
************-------------------------------------------------------------------------------------------------------------------
*
#define ACTIVE_LOW!
#define ACTIVE_HIGH!! /*双重否定强制结果为'1'*/
/* S1 */
#define PUSH1_BV BV (4)//由 ASA 编写原始值为1
#define PUSH1_SBIT P0_4 //由 ASA 写入原始值为 P0_1
#IF 定义(HAL_Board_CC2530EB_REV17)
#define PUSH1_POLARITY ACTIVE_HIGH
定义了#Elif (HAL_Board_CC2530EB_REV13)
#define PUSH1_POLARITY ACTIVE_LOW
其他
#ERROR 未知电路板标识符
#endif
/* S2 */
#define PUSH2_BV BV (5)//由 ASA 写入原始值为0
#define PUSH2_SBIT P0_5 //由 ASA 写入原始值为 P2_0
#define PUSH2_POLARITY ACTIVE_HIGH
在 onboard.c 上:
空 InitBoard( uint8级)
{
如果(级别== OB_COLD)
{
// IAR 不会将 XSTACK 下面的这个字节归零。
*(uint8 *) 0x0 = 0;
//中断关闭
OSAL_INT_DISABLE (ints_all);
//检查掉电复位
ChkReset();
}
else //!OB_COLD
{
/*初始化关键内容*/
//HalKeyConfig (HAL_KEY_interrupt_disable、ONBOARD_KeyCallback);由 ASA 编写
HalKeyConfig (HAL_KEY_interrupt_enable、ONBOARD_KeyCallback);
}
在 zcl_sampleLight.c (HandleKeys)上:
静态空 zclSampleLight_HandleKeys (字节移位、字节键)
{
//zAddrType_t dstAddr;
(void) shift;//有意未引用参数
IF (移位)
IF (键和 HAL_KEY_SW_1)
{
HalLedSet (HAL_LED_3、HAL_LED_MODE_OFF);//由 ASA 编写
P1_4 = 0;
}
if (keys & HAL_key_sw_2)
{
HalLedSet (HAL_LED_3、HAL_LED_MODE_OFF);//由 ASA 编写
P1_4 = 0;
}
if (键& HAL_KEY_SW_3)
{
HalLedSet (HAL_LED_3、HAL_LED_MODE_OFF);//由 ASA 编写
}
if (keys & HAL_key_sw_4)
{
HalLedSet (HAL_LED_4、HAL_LED_MODE_OFF);//由 ASA 编写
}
}
我在输入消息环路内用基本测试用鱼端口(P0_4)进行了双次检查、以验证我的硬件是否正常工作、我检查了是否正常。
如果(!P0_4)
{P1_4 = 0;
}
但是、当我在 zcl_samplelight.c 中使用 handlekeys 时、不会发生任何情况 有人可以帮助我、如何开始工作?
BR
Alex
BR
Alex