关于定时器与睡眠模式的问题
时间:10-02
整理:3721RD
点击:
hi
各位大神早上好!
我的应用情景是这样的:我需要使用CC2540的定时器1的通道1作为输入捕获,用来计算高电平的脉宽,同时需要打开Power Saving的宏使能低功耗。我使用周期事件来处理捕获到的电平宽度,定时器1在初始化(溢出中断和捕获中断都开启了)的时候启动,接下来,问题来了--------
问题:我使用周期事件来处理捕获,第一个周期捕获的数据是正确的,从第二个周期开始,数据就出问题了,我是使用osal_start_timerEx这个函数来置事件的,想请问:
1 - 在使能 Power Saving 以及在我自己的应用中使用定时器,需要注意些什么?
2 - OSAL在定时事件未到之前,进入PM2模式,我知道它从 halSleep() 函数里面的 HAL_SLEEP_SET_POWER_MODE(); 进入睡觉,但醒来后第一条指令是从哪里开始执行呢?
3 - OSAL在睡觉的时候使用32k低频晶振,那么在醒来后会自动切换到32M高频晶振吗?这个切换时间大概多长呢?
4 - 谢谢!
1)要注意,不要使用timer2;注意事件频率是否合适
2)唤醒后,从进入休眠的指令下一条指令开始运行
3)RTOS会负责调用对应函数来唤醒32M晶振,这个不用你担心