#include "AD18F06A.h"
#include <stdio.h>
#include "common.h"

/*******************************************************************************
// ----Function: GPIO_Init
// --Parameters:
// -----Returns: None
//---------Note:所有IO初始化
*******************************************************************************/

void GPIO_Init(void)
{
	TRISA = 0X00;   //PA输出模式
	TRISB = 0X00;   //PB输出模式
	TRISC = 0X00;   //PC输出模式
	TRISD = 0X00;   //PD输出模式

	PORTA = 0X00;	//PORTA输出0
	PORTB = 0X00;	//PORTB输出0
	PORTC = 0X00;	//PORTC输出0
	PORTD = 0X00;	//PORTD输出0

	PAPD = 0XFF;    //关闭PA下拉
	PAPU = 0XFF;    //关闭PA上拉
	PBPD = 0XFF;    //关闭PB下拉
	PBPU = 0XFF;    //关闭PB上拉
	PCPD = 0XFF;    //关闭PC下拉
	PCPU = 0XFF;    //关闭PC上拉
	PDPD = 0XFF;    //关闭PD下拉
	PDPU = 0XFF;    //关闭PD上拉

	PAOD = 0X00;    //关PA开漏输出
	PBOD = 0X00;    //关PB开漏输出
	PCOD = 0X00;    //关PC开漏输出
	PDOD = 0X00;    //关PD开漏输出

	ANASEL0 = 0X00; //关PA模拟量通道
	ANASEL1 = 0X00; //关PB模拟量通道
	ANASEL2 = 0X00; //关PC模拟量通道
	ANASEL3 = 0X00; //关PD模拟量通道
}

void timer0_Init(void)
{
	T0CLKEN = 1;    //开T0时钟
	TMR0 = 0X00;    //清0
	T0CON0 = 0X18;   //TMR0时钟为TOCKI(PA3)，使能TMR0时钟，不分频

	TMR0IF = 0;     //清中断标志
	TMR0IE = 1;     //开TMR0中断
	TMR0IP = 1;		//高优先级中断

	IPEN = 0;       //禁止中断优先级
	PEIE = 1;       //允许所有外设中断
}

/*******************************************************************************
// ----Function:Timer1_Init
// --Parameters:
// -----Returns:None
//---------Note:定时器1初始化，定时2.5ms
			Fcpu作为TMR1时钟:
			4T	t = (FFFF-TMR)*定时器1分频系数*4T/16MHz
			2T	t = (FFFF-TMR)*定时器1分频系数*2T/16MHz
			其它时钟源作为TMR1时钟:
			t = (FFFF-TMR)*定时器1分频系数/osc
********************************************************************************/

void timer1_Init(void)
{
	T1CLKEN = 1;	//开T1时钟
	TMR1H = 0XD8;	//t = (65536-55536)*4T/16MHz = 2500us
	TMR1L = 0XF0;
	T1CON1 = 0X00;	//工作在普通模式
	T1CON0 = 0X01;	//TMR1时钟为Fcp时钟，使能TMR1时钟，不分频

	TMR1IF = 0;     //清中断标志
	TMR1IE = 1;     //开TMR1中断
	TMR1IP = 1;		//高优先级中断

	IPEN = 0;       //禁止中断优先级
	PEIE = 1;       //允许所有外设中断
}


