📄 lcdc.c
字号:
/*
********************************************************************************************
*filename: lcdc.c
*author: zhangbing
*create date: 2005-5-10
*description: The file consists of the grey function test of lcdc
*modify history:
*misc:
********************************************************************************************
*/
#include <stdio.h>
#include "HA_TypeDef.h"
#include "lcdc.h"
#include "hardware_reg.h"
//*********************************
//gpio
//*********************************
#define PORT_BASE 0X1000B000
#define DBCLK_DIV 0X1000B000
#define PORTE_DIR (PORT_BASE+0X34)
#define PORTE_SEL (PORT_BASE+0X38)
#define PORTE_INCTL (PORT_BASE+0X3C)
#define PORTE_INTRCTL (PORT_BASE+0X40)
#define PORTE_INTRCLR (PORT_BASE+0X44)
#define PORTE_DATA (PORT_BASE+0X48)
//ER init_lcdc(U8 colour_type)
ER init_lcdc(U32 sysclk,U8 test_flg,U8 colour_type)
{
U32 t1;
U8 i,tmp;
U8 * ptr;
*(RP)PORTE_SEL = 0X1<<11; //GPIO端口E配置为LCDC用
*(RP)PORTE_DATA =( 0X1 << 11);
*(RP)SSA = VS_BASE; //存储缓冲区设置
*(RP)SIZE = 0x00f00140; //屏幕分辨率为240*320
*(RP)HCR = 0xc8000204; //水平配置
*(RP)VCR = 0x14000102; //垂直配置
//*(RP)PWMR = 0x00000120; //对比度控制
*(RP)DMACR = 0x80070003; //DMA配置
if(colour_type == grey4)
{
tmp = (U8)(sysclk/1000000);
tmp = tmp/5;
*(RP)PCR = (0x22000000)|(tmp-1); //4级灰度控制字
/*调色板寄存器设置*/
*(RP)LGPMR = 0x00000000;
*(RP)(LGPMR+4) = 0x00000004;
*(RP)(LGPMR+8) = 0x0000000a;
*(RP)(LGPMR+12) = 0x0000000f;
if(test_flg)
{
ptr = (U8 *)fish4;
/*4显示4级灰度图片fish4*/
for(t1=0; t1<320*240*2/8; t1++)
*(RP8)(VS_BASE+t1) = *(ptr+t1);
}
}
else if(colour_type == grey16)
{
tmp = (U8)(sysclk/1000000);
tmp = tmp/5;
*(RP)PCR = (0x24000000)|(tmp-1); //16级灰度控制字
/*调色板寄存器设置*/
for(i=0;i<16;i++)
*(RP)(LGPMR+4*i) = i;
if(test_flg)
{
ptr = (U8 *)fish16;
/*16显示4级灰度图片fish16*/
for(t1=0; t1<320*240*4/8; t1++)
*(RP8)(VS_BASE+t1) = *(ptr+t1);
}
}
else
return E_SYS;
/*如果不显示测试图片,则把屏幕刷黑*/
if(!test_flg)
for(t1=0; t1<320*240*(colour_type==grey4?2:4)/8; t1++)
*(RP8)(VS_BASE+t1) = 0xff;
*(RP)LECR = 0x00000001; //使能LCDC
printf("LCDC has been initialed!\n");
return E_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -