原创 CC2430/CC2431源代码:CC2430的PWM控制

2009-7-13 15:13 1753 15 15 分类: 消费电子

//cd wxl

//说明:本实验在成都无线龙提供的CC2430模块中调试通过。http://www.c51rf.com

#include <cdwxl.h>

/*****************************************
//初始化Sleep Timer
*****************************************/
void Init_SLEEP_TIMER(void)
{
EA = 1; //开中断
STIE = 1;
STIF = 0;
}

/*****************************************
//设置Sleep Timer唤醒时间
//sec :间隔时间,单位为秒
//无返回
*****************************************/
void addToSleepTimer(UINT16 sec)
{
   UINT32 sleepTimer = 0;

   sleepTimer |= ST0;
   sleepTimer |= (UINT32)ST1 << 8;
   sleepTimer |= (UINT32)ST2 << 16;

   sleepTimer += ((UINT32)sec * (UINT32)32768);

   ST2 = (UINT8)(sleepTimer >> 16);
   ST1 = (UINT8)(sleepTimer >> 8);
   ST0 = (UINT8) sleepTimer;
}

/*****************************************
//延时函数
*****************************************/
void Delay(uint n)
{
uint jj;
for(jj=0;jj<n;jj++);
for(jj=0;jj<n;jj++);
for(jj=0;jj<n;jj++);
for(jj=0;jj<n;jj++);
for(jj=0;jj<n;jj++);
}

/*****************************************
//LED闪烁函数
*****************************************/
void LedGlint(void)
{
uchar jj=10;
while(jj--)
{
    RLED = !RLED;
    Delay(10000);
}
}

/*********************************************************************
//主函数
*********************************************************************/
void main(void)
{
SET_MAIN_CLOCK_SOURCE(CRYSTAL);
SET_LOW_CLOCK(CRYSTAL);
LED_ENABLE(1);
RLED = 1;
GLED = 0;

Init_SLEEP_TIMER();
while(1)
{
    addToSleepTimer(10);
    SET_POWER_MODE(2);
    LedGlint();
    GLED = ~GLED;
}
}

#pragma vector = ST_VECTOR
__interrupt void ST_ISR(void)
{
   STIF = 0;
}

更多资料与技术讨论请联系:

上海无线龙通讯科技有限公司

联系人:司文铠

QQ876692208

MSN:siwenkai@hotmail.com

TEL13816689475

email:wxlsiwenkai@yahoo.com.cn

skype:sparksi01

公司网址:www.wxlsoc.com

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
15
关闭 站长推荐上一条 /3 下一条