cc2530中断唤醒后的时钟设置问题
时间:10-02
整理:3721RD
点击:
我用cc2530作为中断节点接收遥控器的红外信号,用的是TI提供的OSAL系统。
节点平时是处于PM2休眠的,我想通过用P0某一引脚接收红外信号作为中断将其唤醒,然后通过T1测量信号电平的持续时间,用的是32Mhz的晶振。
现在问题是,红外将节点唤醒以后测得的时间全都不对,基本偏小几百us
(当我将POWER_SAVING去掉时,测得的红外编码时间都是正确的,因此中断捕获和记时程序都没有问题)
所以我想请教一下各位高手:
采用osal时,当P0引脚中断将2530从PM2唤醒后,系统首先会执行哪一段程序?是我自己编写的P0中断服务例程吗?
中断将2530唤醒后,系统时钟是怎么恢复成32Mhz的?需要多长时间?需要自己设置吗?因为在中断引发后,我需要马上利用32MHz的时钟测度红外信号,这需要怎么做呢?
急救,救急,请大家帮帮忙!
我的程序思路是:
当2530被中断唤醒后,用osal_pwrmgr_device(PWRMGR_ALWAYS_ON)取消其休眠功能,然后利用T1计时对红外信号解码,解码完毕后再用osal_pwrmgr_device(PWRMGR_BATTERY)恢复休眠
请各位老师帮帮忙,这个问题我已经纠结了半个月了,还没有结果
万能众人膜拜的TI大神啊,你们回答了这么多高级问题,怎么就不理一下我啊!
麻烦略施援手,在下万分感激
从中断唤醒到处理中断服务程序,需要等32M的晶振稳定以后再处理的,这个过程是芯片自己完成的,
从PM2到Active状态一般需要100us,数据手册上有说明。