6410裸机启动LCD

#include "Lcd.h"

void Init()
{
 	    int i = 0;
 	    int j = 0;
 	    for(i = 0; i < Y_SIZE; i++)
		{
			for(j = 0; j < X_SIZE; j++)
			{
				LCD_BUFFER[i][j] = 0;
			}
		}

	    //设置VD0~15
		GPICON_REG	=	0XAAAAAAAA; //设置GPI0~15为LCD VD0~15
		GPIPUD_REG = 0;  // 下拉电阻屏蔽

		//设置VD16~23和HSYNC、VSYNC、VDEN、VCLK
		GPJCON_REG	=	0XAAAAAAAA;
		GPJPUD_REG =0;  // 下拉电阻屏蔽

		// 关闭LCD
		lcd_disable();

		// 窗口0控制器 关闭视频输出
		S3C_WINCON0 &= (~(S3C_WINCONx_ENWIN_F_ENABLE));

		//LCD寄存器设置  手册上写着必须这么设置SPCON寄存器
		SPCON_REG &= (~0x3);
		SPCON_REG |= 0x01;

		// 手册上写着必须这么设置MIFPCON寄存器
		MIFPCON_REG &= ~(1<<3);  //设置LCD支路为一般模式

		// 第六位是确定CLKVAL_F值,第四位用CLKVAL_F选择时钟源
		S3C_VIDCON0 = (13 << 6) | (1 << 4);

		// 第五位指明VSYNC为反向, 第六位HSYNC为反向
		S3C_VIDCON1 = (1 <<6) | (1 <<5);

		//设置屏的时序
		S3C_VIDTCON0 = (1 << 16) | (1 << 8) | 9;
		S3C_VIDTCON1 = (1 << 16) | (1 << 8) | 40;
		S3C_VIDTCON2 = (271<<11)|(479<<0);

		//设置窗口格式
		S3C_WINCON0 = 11<<2;  //设置24BPP

		//设置窗口位置
		S3C_VIDOSD0A = (0<<11)|(0<<0);  // 左上角坐标,0-10位是纵坐标  11-21是横坐标
		S3C_VIDOSD0B = ((479)<<11) | ((271)<<0); // 右下角坐标
		S3C_VIDOSD0C = 480 * 272 ;  // 窗口尺寸

		//设置窗口1的开始和结束的缓存地址与地址在内存中的存放地址以及缓存的大小
		S3C_VIDW00ADD0B0 = (U32)LCD_BUFFER;
		S3C_VIDW00ADD1B0 = ((U32)LCD_BUFFER + 480 * 272 * 4 ) & 0xffffff;
		S3C_VIDW00ADD2 = (0 << 13)|(480 * 4 );

		lcd_Enable();
		S3C_WINCON0 |= S3C_WINCONx_ENWIN_F_ENABLE;
		S3C_WINCON1 = 0;
		S3C_WINCON2 = 0;
		S3C_WINCON3 = 0;
		S3C_WINCON4 = 0;
}

void lcd_disable(void)
{
	S3C_VIDCON0 &= (~(S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE));

}

/**************************************************************
480*272 TFT LCD
**************************************************************/
void lcd_Enable(void)
{
	S3C_VIDCON0 |= (S3C_VIDCON0_ENVID_ENABLE | S3C_VIDCON0_ENVID_F_ENABLE);

}

void fill()
{
	int i = 0;
	int j = 0;
	for(i = 0; i < Y_SIZE  / 2; i++)
	{
		for(j = 0; j < X_SIZE; j++)
		{
			U8 r = 255;
			U8 g = 0;
			U8 b = 0;
			U32 co = ((r << 16) | (g << 8) | b);
			LCD_BUFFER[i][j] = co;
		}
	}
}

开发环境:

OS: MAC OS

IDE: ECLIPSE

 

6410启动LCD其实很简单,只需要设置几个寄存器就行,以上放上我的初始化代码。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值