CC2510芯片功耗降不下来,求大神指点下!.....
时间:10-02
整理:3721RD
点击:
CC2510无线芯片功耗降不下来,大神帮忙指点下啊。在发送模式下的电流测得26mA,但是在睡眠模式3的待机电流却为140uA,这与说明手册上的0.6uA相比高了好多。已经把芯片上的LED灯都拆了,没有其他的外围电路,程序里面的main函数也只保留了初始化时钟,和初始化按键中断。程序贴出来了,大神给看下吧。
void Set_clock(int source)
{
if(source)//CRYSTAL 0 CR 1
{
CLKCON |= 0x40;
while(!HIGH_FREQUENCY_RC_OSC_STABLE);
SLEEP |= 0x04;
}
else{
SLEEP &= ~0x04;//打开两个振荡器
while(!XOSC_STABLE);
CLKCON &= ~0x47;//高速晶振,系统时钟26Mhz,定时器时钟默认13Mhz
SLEEP |= 0x04;//关闭内部时钟
}
}
void Initial_led(void)
{
P1DIR |= 0x02; //P1_1定义为输出
led_send = 0; //LED
}
void Initial_int_key(void)
{
PICTL |= 0x02;//P1下降沿触发
P1IFG &= ~0x04;//清除P1中断标志
P1IEN |= 0x04;//使能P12中断
INT_SETFLAG(INUM_P1INT, INT_CLR);//操作IRCON2.P1IF,清楚P1中断
INT_ENABLE(INUM_P1INT, INT_ON);//操作IEN2,使能P1中断
}
void Initial(void)
{
Set_clock(0);
Initial_led();
Initial_int_key();
}
void main(void)
{
Initial();
delay(1000);
while(1);
}
void Set_clock(int source)
{
if(source)//CRYSTAL 0 CR 1
{
CLKCON |= 0x40;
while(!HIGH_FREQUENCY_RC_OSC_STABLE);
SLEEP |= 0x04;
}
else{
SLEEP &= ~0x04;//打开两个振荡器
while(!XOSC_STABLE);
CLKCON &= ~0x47;//高速晶振,系统时钟26Mhz,定时器时钟默认13Mhz
SLEEP |= 0x04;//关闭内部时钟
}
}
void Initial_led(void)
{
P1DIR |= 0x02; //P1_1定义为输出
led_send = 0; //LED
}
void Initial_int_key(void)
{
PICTL |= 0x02;//P1下降沿触发
P1IFG &= ~0x04;//清除P1中断标志
P1IEN |= 0x04;//使能P12中断
INT_SETFLAG(INUM_P1INT, INT_CLR);//操作IRCON2.P1IF,清楚P1中断
INT_ENABLE(INUM_P1INT, INT_ON);//操作IEN2,使能P1中断
}
void Initial(void)
{
Set_clock(0);
Initial_led();
Initial_int_key();
}
void main(void)
{
Initial();
delay(1000);
while(1);
}