#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 Pwm_Init(void)
{
	PWM0     = 0;     //输出
	T0CLKEN  = 1;     //开TMR0时钟
	PR0      = 0X9B;  //PWM 周期t=100*4分频*2T/16MHz=50us（20kHz）
	T0CON0   = 0X07;  //TMR0时钟为FCPU，使能TMR0时钟，4分频
	PWM0DUTY = 0X19;  //占空比 = PWM0DUTY/PR0 = 25/100 = 25%
	PWM0_MAP = 0X09;  //PB1输出PWM
	T0CON1   = 0X0C;  //使能PWM0,反向输出
}
