#include "include.h"
void System_Int(void)
{
	Ram_Int();   	///RAM清零  

	Gpio_Int();		//IO初始化		

	Cmp1_Int();
}

void Cmp1_Int(void)
{
	ANSELC2 = 1;
	TRISC2 = 1;		//PC2数字输出，输出CMP1OUT
	PORTC2 = 0;
		
	///bit4-5  && bit0-3  需要参考数据手册表格选择不同电压
	CMP1CON1 |= LVD_BAT_4_00;

	CMP1DBC  = 0X00;	// 滤波使能为bit7   使能CMP1DBC滤波时  bit0-bit3需要填非0的值

	//CMP+ 选择 VDD经过电阻分压的电压
	//CMP- 选择 内部1.3V
	CMP1CON0 = 0x29;        
	
	CMP1EN = 1;
}

void Gpio_Int(void)
{
	////数字模拟模式：   1：数字    0：模拟
	ANSELA = 0x00;
	ANSELB = 0x00;
	ANSELC = 0x00;
	
	////输入输出模式：   1：输出    0：输入
	TRISA = 0x00;
	TRISB = 0x00;
	TRISC = 0x00;
	
	////IO数据寄存器：   1：高电平    0：低电平
	PORTA = 0x00;
	PORTB = 0x00;
	PORTC = 0x00;
	
	////输入上拉控制：   1：使能上拉   0：关闭上拉
	WPUA = 0x00;
	WPUB = 0x00;
	WPUC = 0x00;
	
	////输入下拉控制：   1：使能下拉   0：关闭下拉
	WPDA = 0x00;
	WPDB = 0x00;
	WPDC = 0x00;
	
	////GPIO唤醒控制：   1：使能唤醒   0：关闭唤醒
	IOCA = 0x00;
	IOCB = 0x00;
	IOCC = 0x00;	
}

void Ram_Int(void)
{
	IRP = 0;
	FSR = 0x60;
	do{
		INDF = 0;
		FSR++;
	}while(FSR != 0x80);//BANK0 60H~7FH 地址清0
      
	FSR = 0xD0;
	do{
		INDF = 0;
		FSR++;
	}while(FSR != 0xF0);//BANK1 D0H~EFH 地址清0
	
	IRP = 1;
	FSR = 0x10;
	do{
		INDF = 0;
		FSR++;
	}while(FSR != 0x70);//BANK2 110H~16FH 地址清0
      
	FSR = 0x90;
	do{
		INDF = 0;
		FSR++;
	}while(FSR != 0xF0);//BANK3 190H~1EFH 地址清0

	IRP = 0;
}