📄 lcd_main.c
字号:
#include "LPC23xx.h"
#include "type.h"
#include "irq.h"
#include "timer.h"
#include "target.h"
#include "LCD.h"
#include "uart.h"
#include "dma.h"
#include "sdram.h"
//extern char gImage_linpo[];
extern const unsigned char gImage_1[]; // 图片数据gImage_1[]来自1.c
extern volatile DWORD DMA_SRC;
volatile DWORD *wr_ptr;
volatile BYTE *char_wr_ptr;
extern volatile DWORD timer1_counter;
#define picX 150
#define picY 100 // 图片起始坐标
#define picWidth 100
#define picHigh 75 // 图片大小
int main ( )
{
DWORD i,j,col,row;
volatile DWORD *wr_ptr;
volatile BYTE *char_wr_ptr;
TargetResetInit();
//UARTInit( 9600 );
SDRAMInit();
wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
char_wr_ptr = (BYTE *)wr_ptr;
/* 按照8bit的方式访问SDRAM测试前,清除SDRAM相应地址的内容 */
/**/ for ( i= 0; i < SDRAM_SIZE/4; i++ )
{
*wr_ptr++ = 0;
}
/* 按点阵方式将图片数据送入SDRAM,LCD分辨率为480×272 ,图片大小为75×100 */
j=0;
wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
char_wr_ptr = (BYTE *)wr_ptr;
for(col=0; col<272; col++)
{
for(row=0; row<480; row++)
if(col>=picY && col<(picY + picHigh))
{
if(row>= picX&& row<(picX + picWidth))
{
*char_wr_ptr++ = gImage_1[j++];
*char_wr_ptr++ = gImage_1[j++];
*char_wr_ptr++ = gImage_1[j++];
*char_wr_ptr++ = 0x00;
}
else
{
*char_wr_ptr++ = 0xFF;
*char_wr_ptr++ = 0x00;
*char_wr_ptr++ = 0X00;
*char_wr_ptr++ = 0x00; // 其余像素点显示为背景红色
}
}
else
{
*char_wr_ptr++ = 0xFF;
*char_wr_ptr++ = 0x00;
*char_wr_ptr++ = 0X00;
*char_wr_ptr++ = 0x00;
}
}
lcd_configure_gpio();
LCD_Disp_Config();
DMA_SRC = 0xA0000000;
LCD_UPBASE = DMA_SRC;
//DMA_Init( M2M );
DMA_Init();
/* while(1)
{
delayMs(0,100);
DMA_SRC += 10;
LCD_UPBASE = DMA_SRC;
if(DMA_SRC == (0xA0000000+480*4))
DMA_SRC = 0xA0000000;
}*/
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -