/**************************************************************************
文件名称: dm_tft_ppiinit.c
作者: Andy
版本: 0.1
创建时间 : 2007-04
描述:
文件实现了BF533的PPI等函数的初始化
修改历史:
****************************************************************************/
#include "dm_bf5xx.h"
#include "dm_types.h"
/****************************************************************************
* 功能 : 外部声明的变量
****************************************************************************/
extern uint8_t DisplayBuffer[262][960];
/****************************************************************************
* 名称 : Init_PPI
* 功能 : PPI 控制器初始化
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static void Init_TFTPPI(void)
{
*pPPI_DELAY = 100;
*pPPI_COUNT = 959; //960 samples per line
}
/****************************************************************************
* 名称 : Init_PPIDMA
* 功能 : PPIDMA 初始化
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Init_PPIDMA(uint8_t *start)
{
*pDMA0_START_ADDR =(int_t)start;
*pDMA0_X_COUNT = 960/2;
*pDMA0_X_MODIFY = 2;
*pDMA0_Y_COUNT = 262;
*pDMA0_Y_MODIFY = 2;
*pDMA0_CONFIG = 0x1034;
}
/****************************************************************************
* 名称 : Init_Timer
* 功能 : 初始化时钟为PWM 模式 TMR1 和 TMR2 输出
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static void Init_Timer(void)
{
*pTIMER1_PERIOD = 1224;
*pTIMER1_WIDTH = 88;
*pTIMER1_CONFIG = 0x00a9;
*pTIMER2_PERIOD = 320688;
*pTIMER2_WIDTH = 3672;
*pTIMER2_CONFIG = 0x00a9;
}
/****************************************************************************
* 名称 : Init_TFTCPLD
* 功能 : 将CPLD的PPI时钟切换至TFT模块
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
static void Init_TFTCPLD(void)
{
*pCtrOut_Flag_OE = ~TFT_245_OE ; //CMOS_OE 245 允许 ADG_OE=1
mdelay(500);
*pCtrOut_Flag_B = ~TFTCLK_SET;
mdelay(500);
}
/****************************************************************************
* 名称 : PPI_TMR_DMA_Enable
* 功能 : PPI 控制器 DMA 控制器 和TMR 控制器 允许
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void PPI_TMR_DMA_Enable(void)
{
*pDMA0_CONFIG |= 0x1;
asm("ssync;");
*pPPI_CONTROL = 0x809f;
Init_Timer();
*pPPI_CONTROL |= 0x1; //使能PPI
asm("ssync;");
*pTIMER_ENABLE= 0x0006;
asm("ssync;");
}
/****************************************************************************
* 名称 : Init_Platform_TFT
* 功能 : 初始化TFT
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void Init_Platform_TFT(void)
{
Init_TFTCPLD();
Init_TFTPPI();
PPI_TMR_DMA_Enable();
}
/****************************************************************************
* 名称 : PPI_TMR_DMAR_Disable
* 功能 : 关闭PPIDMA
* 入口参数 :无
* 出口参数 :无
****************************************************************************/
void PPI_TMR_DMAR_Disable(void)
{
*pDMA0_CONFIG &= (~DMA_EN);
*pPPI_CONTROL &= (~PORT_EN);
}