cc2530-projects/Zigbee无线通信/A板/CC2530_lib/common/hal_sleep.c
2021-10-04 22:26:10 +08:00

42 lines
782 B
C

#include <hal_sleep.h>
void SET_POWER_MODE(unsigned char mode)
{
if(mode == 0)
SLEEPCMD &= ~0x03;
else
if(mode == 3)
SLEEPCMD |= 0x03;
else
{
SLEEPCMD &= ~0x03;
SLEEPCMD |= mode;
}
PCON |= 0x01;
asm("NOP");
}
void Set_ST_Period(unsigned char sec)
{
unsigned long sleepTimer = 0;
sleepTimer |= ST0;
sleepTimer |= (unsigned long)ST1 << 8;
sleepTimer |= (unsigned long)ST2 << 16;
sleepTimer += ((unsigned long)sec * (unsigned long)32768);
ST2 = (unsigned char)(sleepTimer >> 16);
ST1 = (unsigned char)(sleepTimer >> 8);
ST0 = (unsigned char) sleepTimer;
}
void Init_SLEEP_TIMER(void)
{
EA = 1;
STIE = 1;
STIF = 0;
}