|
RT!
第一个问题:低功耗模式设置的DeepSleep模式(PWRDWN=0X01),功耗都有200uA,其它低功耗模式比这个模式更高点,硬件除了24LE1的无线模块外,没有其它任何外围电路,相关代码如下,大家帮忙看看,还需要其它什么设置?
以下程序和代码都是执行的:
void RFPowrDown(void)//关闭RF电源
{
unsigned char ConfigTemp=0;
ConfigTemp=RFReadOneByte(CONFIG);//读取CONFIG寄存器
RFWriteOneByte(CONFIG,ConfigTemp&0XFD);//PWR_UP=0
RFCON=RFCON&0XFB;//RFCKEN=0,射频16M时钟禁用
RFDeviceDisable;//RFCE=0,RF收发器禁用
}
void PowrDownModeSetup(unsigned char mode)//低功耗模式设置程序
{
CLKCTRL=0X10;//系统进入深度睡眠模式前,片上16MRC时钟必须开启
OPMCON=OPMCON|0X02;//使能锁存,在进入深度睡眠和存储器保持模式前,必须使能锁存,以保持寄存器设置
PWRDWN=(PWRDWN&0XF8)|mode;//低功耗模式设置
}
第二个问题,将看门狗设置为10S复位,低功耗模式设置为存储器保持定时器打开模式(PWRDWN=0X03),等待10S后,看门狗能够正常复位,但是2.4G的RF无法发送数据,但RF的STATUS寄存器却报的发送完成状态(MASK_TX_DS_FLAG=1),但是接收端实际没有接收到数据,看门狗复位后,程序应该是从头重新跑的吧?整套程序如果没有进低功耗模式,RF每秒发送一次数据,发送和接收都正常的。
大家帮忙看看,谢谢拉! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|