lcd_main.c

来自「IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4」· C语言 代码 · 共 99 行

C
99
字号
#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 + =
减小字号Ctrl + -
显示快捷键?