Пример #1
0
int main(void)
{
	SysTick_Init();

	RCC_Init();
  
	USART2_Init();
	
	InitRF();
	
	Tag_Init();
	
	//send_alive_cmd_to_master();
   
	IWDG_Init();
	
   while(1)
   {			 
		if(sysTime1ms % 50 == 0) 
		{
			Feed_IWDG();
		}
		
     usart_msg_handle();
		 if(tag_check_flag)
		 {
			 Tag_state_check();
			 tag_check_flag = 0;
		 }
		 SendWakeMsg();
   }
}
Пример #2
0
//Initialize system
void Init()
{
	unsigned int		i;

	IFG1 &= ~OFIFG;

	// Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;

	//Adjust DCO frequency
//    //DCOCTL	= DCO0 + DOC1 +DOC2;
//	DCOCTL	= 0x80;
//	BCSCTL1	= XT2OFF + RSEL0 + RSEL1 + RSEL2;
//	BCSCTL2	= 0;

	//调整DCO的频率
	DCOCTL = 0xE0;

	//切换MCLK到外部高速晶振(需要检测是否起振)
	//BCSCTL1 &= ~XT2OFF;		//启动高速晶振
	BCSCTL1 = RSEL0 + RSEL1 + RSEL2;

	do
	{
		//清除振荡器失效标志位,再延迟检查
		IFG1 &= ~OFIFG;
		for (i = 0; i < 1000; i++)
		{
			__no_operation();
		}
	} while (IFG1 & OFIFG);

	//使用XT2, SMCLK = MCLK = 8MHz
	BCSCTL2 = SELM1 + SELS;

	//允许外部振荡器失效后,重启系统
	IE1 |= OFIE;


	InitPort();

	InitUART();

	InitADC();

	InitSPI();

	InitRF();

	InitSensors();

	InitTimer();


	ShutdownModule();
}