BF533的PPI等函数的初始化
0赞
发表于 2012/6/24 18:36:39
阅读(1969)
****************************************************************************/ #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); }