//说明:本实验在成都无线龙提供的CC2430模块中调试通过。http://www.c51rf.com
//cd wxl
#include <emot.h>
/*****************************************
//初始化Sleep Timer cdwxl
*****************************************/
void Init_SLEEP_TIMER(void)
{
EA = 1; //开中断
STIE = 1;
STIF = 0;
}
/*****************************************
//设置Sleep Timer唤醒时间wxl
//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;
}
/*****************************************
//延时函数wxl
*****************************************/
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闪烁函数cdwxl
*****************************************/
void LedGlint(void)
{
uchar jj=10;
while(jj--)
{
RLED = !RLED;
Delay(10000);
}
}
/*********************************************************************
//主函数wxl
*********************************************************************/
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;
}
更多资料与技术讨论请联系:
上海无线龙通讯科技有限公司
联系人:司文铠
QQ:876692208
MSN:siwenkai@hotmail.com
TEL:13816689475
email:wxlsiwenkai@yahoo.com.cn
skype:sparksi01
公司网址:www.wxlsoc.com
文章评论(0条评论)
登录后参与讨论