#include "include.h"
/*
BL08M003-系统工作模式-Demo
注意：
1、仿真无法使用PA0/PA1  为通信IO口
*/
void main(void)
{
	////初始化函数 
	System_Int();
	
	ANSELA6 = 1;
	TRISA6 = 1;   ///数字输出 作为判断
	PORTA6 = 0;
	
	//SCS = 1;      ////SCS = 0  高频时钟  SCS = 1 低频时钟
	
	///总中断
	GIE = 0;

	while(1)
	{
//		asm("clrwdt");   ///注意WDT是否开启
		
		////SLEEP前关闭模拟模块以降低功耗
		BOREN = 0;     ///SLEEP前关闭BOR  降低功耗
		PORTA6 =~ PORTA6;
		////可配置唤醒源
		ANSELB0 = 1;
		TRISB0 = 0;
		WPDB0 = 1;   ///PB0输入下拉 高电平唤醒
		
		IOCB0 = 1;
	
		if(PORTB)
		{
			asm("nop");
		}
		PBIF = 0;
		PBIE = 1;
	
		GIE = 1;   ///总中断按需置1 若只唤醒，可不使能GIE
		////SLEEP
		#asm
			nop
			nop
			nop
			nop
			nop
			
			sleep
			
			nop
			nop
			nop
			nop
			nop
		#endasm
		
		if(PORTB)
		{
			asm("nop");
		}
		PBIF = 0;
		IOCB0 = 0;
		PBIE = 0;
		
		////唤醒后恢复
		BOREN = 1;
	}
}
///中断服务函数
void interrupt Timer0_Isr(void)
{
	if(PBIF)
	{
	    if(PORTB)
        {
			asm("nop");
	    }
		PBIF = 0;    ///清零中断标志位
	 }
}