Hi Everyone,
My CC2530 enter power mode 2.
I use sleep timer to awake CC2530.
But it doesn't work.
My program is shown as follows.
void main(void)
{
uint8_t sendmsg[]=
{
0X41, 0X42, 0X43, 0X44, 0X45,
};
CLKCONCMD |= 0x88; //Enable 32Khz RCOSC
SetSleepTime(4); // Setting sleep timer is 4 sec
SleepTimerInit();
SLEEPCMD |= 0x06; // Setting power mode 2
PCON |= 0x01; // Enable power mode
SMPL_Send(LinkID, sendmsg, strlen(sendmsg));
}
static void SetSleepTime(unsigned short sec)
{
unsigned long sleeptime = 0;
/* read sleep timer value*/
sleeptime |= ST0;
sleeptime |= (unsigned long)ST1 << 8;
sleeptime |= (unsigned long)ST2 << 16;
sleeptime += ((unsigned long)sec * (unsigned long)32753);
/* set sleep timer */
while((STLOAD & 0x01) == 0); // wait before ST0. STLOAD.LDRDY is 0 during the load
ST2 = (unsigned char)(sleeptime >> 16);
ST1 = (unsigned char)(sleeptime >> 8);
ST0 = (unsigned char) sleeptime;
}
static void SleepTimerInit(void)
{
// Enable sleep timer interrupt
IRCON |= 0x80;
IEN0 |= 0x20;
EA = 1; // Enable global interrupt
}
I couldn't saw that the sendmessage was sent.
Can please someone help me out with this...
I would be very grateful.
Thanks,
Jack