版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21352095/article/details/83047235
功能描述:演示使用CC2530进入低功耗,然后使用外部中断将其唤醒,例子程序没有优化深度睡眠时的功耗。仅演示外部中断(按键S0)唤醒CPU的方法。
- main函数代码
void main( void )
{
halMcuWaitUs(10000); //等待默认的内部晶振稳定
PICTL |= 0x01; //P0下降沿引发中断
P0IEN |= 0x01; //使能P00中断
P0IE = 1; //使能P0中断
EA = 1; //使能总中断
/* 进入PM3 */
NOP();
NOP();
NOP();
SLEEPCMD |= 0x03; //设置即将进入的电源模式为PM3
P0DIR |= 0x40;//P0_6输出
while(1)
{
LED_R_ON();//点亮LED
halMcuWaitUs(50000);//50ms
halMcuWaitUs(50000);
LED_R_OFF();
PCON = 0x01; //进入设置的模式
NOP(); //这是唤醒后执行的第一条语句,然后再进入中断
}
}
- 中断函数
/* @brief P0中断服务程序, 按键按下引发中断,然后唤醒CPU
*/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
P0IF = 0;
P0IFG = 0;
}