基于Z-Stack Home 1.2.2a.44539
设置了
POWER_SAVING
-DRFD_RCVC_ALWAYS_ON=FALSE
此时不会进入睡眠状态?是为什么?
按本地按键可以控制本地LED的开关(中断模式)
初始化时加了osal_pwrmgr_device(PWRMGR_BATTERY);
可以进入睡眠模式
但是按本地按键,本地LED闪一下就灭了
请问降低2530的功耗需要怎么设置?
YiKai Chen:
看你的設置沒有什麼問題、查一下是不是IO腳位在漏电丶led閃一下就㓕了去檢查一下hal_sleep 是否有関掉led
user5367314:
回复 YiKai Chen:
在void zclSampleDoorLock_Init( byte task_id )的末尾
加上osal_pwrmgr_device(PWRMGR_BATTERY);
没加之前按按键会立即开关LED(按键是中断)
加上后按按键等了5秒左右才开关LED?还是哪里需要再设置?
还想保存按按键后立即执行开关LED,也要是低功耗模式,怎么设置?
YiKai Chen:
回复 user5367314:
可以具體描述用哪個API操作LED?
user5367314:
回复 YiKai Chen:
HalLedSet();
YiKai Chen:
回复 user5367314:
你是在侦测到按鍵立即調用HalLedSet去關閉LED?
user5367314:
回复 YiKai Chen:
你好,设置了
-DRFD_RCVC_ALWAYS_ON=FALSE
POWER_SAVING
如果初始化的时候不加入osal_pwrmgr_device(PWRMGR_BATTERY);
是一直无法进入睡眠的,加入了才能进入睡眠,是什么原因?
基于官方的Z-Stack Home 1.2.2a.44539
只是实现看按按键点LED的功能(中断方式)
但是加入osal_pwrmgr_device(PWRMGR_BATTERY);后按按键就不能立即响应(操作LED)
延迟好几秒才有反应,怎么才能按按键LED立即响应?而且2530有是低功耗模式
YiKai Chen:
回复 user5367314:
如果初始化的时候不加入osal_pwrmgr_device(PWRMGR_BATTERY); 是一直无法进入睡眠的,加入了才能进入睡眠,是什么原因?應該是因為協議棧預設會一直去搜尋網路加入,直到入網後才會去調用osal_pwrmgr_device(PWRMGR_BATTERY)
怎么才能按按键LED立即响应?你predefined symbol有沒有加入 ISR_KEYINTERRUPT來使能按键中断方式?
user5367314:
回复 YiKai Chen:
中断方式可以立即响应了,如果按键改为查询方式,是否可以及时的响应(500ms以内响应即可)
因为我要检测按键是长按还是短按,必须要用查询的方式才可以
YiKai Chen:
回复 user5367314:
預設按键为查询,每100ms查询一次,你可以參考下面的源碼
if (events & HAL_KEY_EVENT) {#if (defined HAL_KEY) && (HAL_KEY == TRUE) /* Check for keys */ HalKeyPoll(); /* if interrupt disabled, do next polling */ if (!Hal_KeyIntEnable) { osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100); }#endif return events ^ HAL_KEY_EVENT; }
user5367314:
回复 YiKai Chen:
預設按键为查询,每100ms查询一次,这段源码是在哪个文件里面?
还是要把你刚才说的源码添加到下面的函数里面?
uint16 zclSampleDoorLock_event_loop( uint8 task_id, uint16 events )
{afIncomingMSGPacket_t *MSGpkt;
(void)task_id;// Intentionally unreferenced parameter
if ( events & HAL_KEY_EVENT ){}
……
}|
TI中文支持网