/******************************************************************************
  文 件 名：GPIO.c
  功能描述：GPIO初始化库文件
  作    者：张暄
  版    本：V1.0
  日    期：2016.11.1
 ******************************************************************************/

#include "GPIO.h"

/******************************************************************************
  函数名：GPIO_Init
  功  能：GPIO初始化，设置GPIO输入/输出方向，初始值及上/下拉
  参  数：无
  返回值：无
 ******************************************************************************/
void GPIO_Init(void)
{
	//PORTA
	DDRA         = 0xF6;        //方向控制寄存器
	PORTA        = 0x70;        //数据寄存器
	PUCR_PUPAE   = 0;           //上拉电阻关闭
	//RDRIV_RDPA = 0;	          //满功率驱动(默认)

	//PORTB         
	DDRB         = 0xFE;        //方向控制寄存器
	PORTB        = 0x0C;        //数据寄存器 
	PUCR_PUPBE   = 0;           //上拉电阻关闭
	//RDRIV_RDPB = 0;           //满功率驱动(默认)
	//PUCR_BKPUE = 1;    	      //BKGD使能上拉电阻(默认使能)

	// PORTT
	DDRT         = 0x38;        //方向控制寄存器
	PTT          = 0x18;        //数据寄存器
	PERT         = 0x00;        //上下拉使能寄存器
	PPST         = 0x00;        //上下拉选择寄存器

	// PORTS
	DDRS         = 0xEA;        //方向控制寄存器     
	PTS          = 0x00;        //数据寄存器
	PERS         = 0x00;        //上下拉使能寄存器   
	PPSS         = 0x00;        //上下拉选择寄存器

	// PORTP
	DDRP         = 0xFC;        //方向控制寄存器     
	PTP          = 0x00;        //数据寄存器 
	PERP         = 0x03;        //上下拉使能寄存器   
	PPSP         = 0x00;        //上下拉选择寄存器

	// PORTH               
	DDRH         = 0xCF;        //方向控制寄存器     
	PTH          = 0x00;        //数据寄存器
	PERH         = 0x00;        //上下拉使能寄存器
	PPSH         = 0x00;        //上下拉选择寄存器	

	// PT1AD
	DDR1AD       = 0xA3;        //方向控制寄存器
	PT1AD        = 0x00;       //数据寄存器         
	PER1AD       = 0x18;       //上拉使能寄存器

	// PORTR
	DDRR         = 0xFF;        //方向控制寄存器     
	PTR          = 0x10;        //数据寄存器
	PERR         = 0x00;        //上下拉使能寄存器   
	PPSR         = 0x00;        //上下拉选择寄存器

	// PORTU
	DDRU         = 0xFF;        //方向控制寄存器
	PTU          = 0x00;        //数据寄存器
	PERU         = 0x00;        //上下拉使能寄存器
	PPSU         = 0x00;        //上下拉选择寄存器

	// PORTV
	DDRV         = 0xFF;        //方向控制寄存器
	PTV          = 0x00;        //数据寄存器
	PERV         = 0x00;        //上下拉使能寄存器
	PPSV         = 0x00;        //上下拉选择寄存器
	
	// PORTM
 	DDRM         = 0xFF;        //方向控制寄存器     
	PTM          = 0x00;        //数据寄存器
	PERM         = 0x00;        //上下拉使能寄存器
	PPSM         = 0x00;        //上下拉选择寄存器  

	// PORTAD0                  
  DDR0AD       = 0xF0;        //方向控制寄存器     
	PT0AD        = 0x00;        //数据寄存器
	PER0AD       = 0x00;        //上拉使能寄存器
	
  TFT_nRST     =  0;          //reset常态下拉
}
