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

CC2530降低功耗

基于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 ){}
……
}|

赞(0)
未经允许不得转载:TI中文支持网 » CC2530降低功耗
分享到: 更多 (0)