完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
hi 各位:
我這邊採用cc2541的advance remote device 我想找關於cc2541進入休眠的點在哪裡? 以及我該如何讓裝至進入休眠? 我已經找了好幾天,關於這個看到類似的幾個地方,不過不知道我是否有誤解? 在 hidadvremote_main.c 中 初始化設置時: #if defined ( POWER_SAVING ) osal_pwrmgr_device( /*PWRMGR_ALWAYS_ON*/ PWRMGR_BATTERY ); #endif 在追下去: void osal_pwrmgr_device( uint8 pwrmgr_device ) [ pwrmgr_attribute.pwrmgr_device = pwrmgr_device; ] 這一行是否告訴裝置可進入休眠? 那我要如何得知裝置會進入休眠? 另外詢問一下 CC2541 在 流程中是否採用輪巡方式來讓裝置從休眠進入等待模式? 找了好久找不到哪一個函式是一值在輪詢的(進入休眠一樣進入輪巡?) |
|
相关推荐
13 个讨论
|
|
|
hi lee:
进入休眠的函数接口在: void osal_pwrmgr_powerconserve( void ) [ //···············// OSAL_SET_CPU_INTO_SLEEP( next ); ] 如上红色字体 用宏定义封起来 其实就是调用void halSleep( uint32 osal_timeout ).在这函数中真正进入睡眠的指令HAL_SLEEP_SET_POWER_MODE()。 脱出低消费其中之一就是原代码设置的定时器: void halSleepSetTimer( uint32 sleepTimer, uint32 timeout ) [ HAL_SLEEP_TIMER_DISABLE_INT(); // compute sleep timer compare value sleepTimer += timeout; // subtract the processing time spent in function halSleep() sleepTimer -= HAL_SLEEP_ADJ_TICKS; // set sleep timer compare; ST0 must be written last ST2 = ((uint8 *)&sleepTimer)[UINT32_NDX2]; ST1 = ((uint8 *)&sleepTimer)[UINT32_NDX1]; ST0 = ((uint8 *)&sleepTimer)[UINT32_NDX0]; HAL_SLEEP_TIMER_CLEAR_INT(); HAL_SLEEP_TIMER_ENABLE_INT(); return; ] 这也是我这俩天刚看的,不知道理解的对不对,希望对你有帮助 |
|
|
|
|
|
|
|
|
非常感謝 T_MAC 協助 也感謝 Yan 幫忙,不過 define POWER_SAVING 這是甚麼意思呢? 而在 IAR 工程选项里面的 preprocessor 里 這是在哪邊要做甚麼更改? 不好意思,對這真的還有很大需要摸索,還是很感謝各位先進的協助!!! 另外 在CC2541 中 是否有函數是 一值再輪詢狀態的呢?(無視 低消費(睡眠)模式) |
|
|
|
|
|
|
|
mikee 发表于 2020-8-28 12:04 yan的意思就是在osal_run_system函数中如下代码,宏定义POWER_SAVING 控制低消费代码能否执行到。 #if defined( POWER_SAVING ) else // Complete pass through all task events with no activity? [ osal_pwrmgr_powerconserve(); // Put the processor/system into sleep ] 另外: void osal_start_system( void ) [ #if !defined ( ZBIT ) && !defined ( UBIT ) for(;;) // Forever Loop #endif [ osal_run_system(); ] ] 如上for死循环,就是一直轮训查找event。 |
|
|
|
|
|
|
|
Jaionm 发表于 2020-8-28 12:22 T_MAC 感謝您的回覆 由於我之前測試的時候,我在 for(;;) // Forever Loop #endif [ osal_run_system(); P2_0=~P2_0 <===TP4 ] 中 加入了 對於 P2_0=~P2_0 這個程式碼 (p2_0 接外部LED) 發現她好像沒有正確的做切換,因此判斷好像只有跑一次? |
|
|
|
|
|
|
|
骑猪去天山 发表于 2020-8-28 13:47 你好 我使用CC2541 Keyfob,燒錄Keyfobdemo preprocessor已經有定義POWER_SAVING 但有辦法在Keyfob_Main.c的HAL_BOARD_INIT();之前延遲或睡眠一秒嗎??? 使用HalSleep(2000); 但好像沒有醒來 要使用甚麼讓他wake up嗎? |
|
|
|
|
|
|
|
|
TI的大牛们,你们好! 我用串口打印跟踪SimpleBLEPeripheral程序流程,根据串口打印信息,SimpleBLEPeripheral进入了 OSAL_SET_CPU_INTO_SLEEP( next )函数,但是这个时候我用SimpleBLECentral程序和SimpleBLEPeripheral通信依然可以成功,SimpleBLEPeripheral不是进入了OSAL_SET_CPU_INTO_SLEEP函数后就进入低功耗模式了吗?为什么还能和SimpleBLECentral通信呢? 辛苦您们了。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
564 浏览 0 评论
1626 浏览 0 评论
2053 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1521 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1352 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1770浏览 29评论
2795浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1732浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1645浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1657浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 06:37 , Processed in 0.997078 second(s), Total 70, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
28280