s5pv210 LCD控制器初始化

2024-08-23 23:58

本文主要是介绍s5pv210 LCD控制器初始化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

s5pv210 LCD控制器功能模块框图:



初始化中对寄存器的配置:

1VIDCON0:时钟信号配置



2VIDCON1:信号极性设置


3VIDTCON0VSYNC时序配置


4VIDTCON1HSYNC时序配置


(5)VIDTCON2:像素设置


(6)WINCON0:设置像素对应数据的特征




(7)SHODOWCON:通道使能


(8)VIDOSD0A:窗口在LCD屏幕中左上角坐标的定位


(9)VIDOSD0B:设置窗口在LCD屏幕中右下角坐标的定位


(10)VIDOSD0C:确定窗口的大小


(11)VIDW00ADD0B0framebuffer的起始地址设置


(12)VIDW00ADD1B0framebuffer的末位地址设置


(13)VID00ADD2:设置framebuffer在虚拟屏幕中的偏移量和尺寸,用于反推framebuffer的末位地址


(14)DISPLAY_CONTROL:选择模式输出


初始化源码参考:

#include "stdio.h"
#include "s5pv210.h"void lcd_PortInit()
{rGPF0CON =0x22222222;rGPF1CON =0x22222222;rGPF2CON =0x22222222;rGPF3CON =0x22222222;
}void lcd_Init()
{//VIDCON0[0:1]=0B11;[2]=0;[4]=1;[6:13]=4;[26:28]=000;rVIDCON0 |= (0X3<<0);rVIDCON0 &= ~(0X1<<2);rVIDCON0 |= (0X1<<4);rVIDCON0 &= ~(0XFF<<6);rVIDCON0 |= (0X4<<6);rVIDCON0 &= ~(0X7<<26);//VIDCON1[4]=0;[5]=1;[6]=1;rVIDCON1 &= ~(0X1<<4);	//Specifies the VDEN signal polarityrVIDCON1 |= (0X1<<5);	//Specifies the VSYNC pulse polarity. rVIDCON1 |= (0X1<<6);	//Specifies the HSYNC pulse polarity//VIDTCON0[0:7]=19;[8:15]=21;[16:23]=2;rVIDTCON0 &= ~(0XFF<<0);	//VSPWrVIDTCON0 |= (0X13<<0);rVIDTCON0 &= ~(0XFF<<8);	//VFPDrVIDTCON0 |= (0X15<<8);rVIDTCON0 &= ~(0XFF<<16);	//VBPD	rVIDTCON0 |= (0X2<<16);//VIDTCON1[0:7]=39;[8:15]=29;[16:23]=5;rVIDTCON1 &= ~(0XFF<<0);	//HSPWrVIDTCON1 |= (0X27<<0);rVIDTCON1 &= ~(0XFF<<8);	//HFPDrVIDTCON1 |= (0X1D<<8);rVIDTCON1 &= ~(0XFF<<16);	//HBPD	rVIDTCON1 |= (0X5<<16);//VIDTCON2[0:10]=799;[11:21]=479;Determines the size of displayrVIDTCON2 &= ~(0X7FF<<0);rVIDTCON2 |= (0X31F);	//HOZVAL = (Horizontal display size) -1 rVIDTCON2 &= ~(0X7FF<<11);rVIDTCON2 |= (0X1DF<<11);	//LINEVAL = (Vertical display size) –1//WINCON0[0]=1;[2:5]=0XB;[15]=1;rWINCON0 |= (0X1<<0);rWINCON0 &= ~(0XF<<2);rWINCON0 |= (0XB<<2);	//1011 = Unpacked 24 bpp ( non-palletized R:8-G:8-B:8 )rWINCON0 |= (0X1<<15);	//Specifies the Word swap control bit//SHADOWCON[0]=1;rSHADOWCON |= (0X1<<0);	//Enables Channel 0//VIDOSD0A[0:10]=0;[11:21]=0;rVIDOSD0A &= ~(0X7FF<<0);	//Specifies the vertical screen coordinate for left top pixel of OSD imagerVIDOSD0A &= ~(0X7FF<<11);	//Specifies the horizontal screen coordinate for left top pixel of OSD image.//VIDOSD0B[0:10]=479;[11:21]=799;rVIDOSD0B &= ~(0X7FF<<0);	rVIDOSD0B |= (0X1DF<<0);rVIDOSD0B &= ~(0X7FF<<11);rVIDOSD0B |= (0X31F<<11);//VIDOSD0C[0:23]=800*480rVIDOSD0C &= ~(0XFFFFFF);rVIDOSD0C |= (0X5DC00);	//Specifies the Window Size//VIDW00ADD0B0[0:31]=0X42000000rVIDW00ADD0B0 &= ~(0XFFFFFFFF);rVIDW00ADD0B0 |= (0X42000000);	// Specifies window 0’s buffer start address//VIDW00ADD1B0[0:31]=0X4200000+800*480*4rVIDW00ADD1B0 &= ~(0XFFFFFFFF);rVIDW00ADD1B0 |= (0X42177000);	//Specifies window 0’s buffer end address//VIDW00ADD2[0:12]=800;[13:25]=0;rVIDW00ADD2 &= ~(0X3FFFFFF);rVIDW00ADD2 |= (0X320<<0);//DISPLAY_CONTROL[0:1]=0B10rDISPLAY_CONTROL &= ~(0X3<<0);rDISPLAY_CONTROL |= (0X1<<1);	//10: RGB=FIMD I80=FIMD ITU=FIMD
}void delay()
{int i,j;for(i=0;i<100;i++)for(j=0;j<100;j++);
}void lcd_screen(int i,int j,int i1,int j1,int color)		//(i,j) is the site of the focus.
{unsigned int *fbuf =(unsigned int *)0x42000000;int x,y;for(y=0;y<480;y++){for(x=0;x<800;x++){	if(((x-i)*(x-i)+(y-j)*(y-j))<=900)*(fbuf+800*y+x)=0xffff00;else if(((x-i1)*(x-i1)+(y-j1)*(y-j1))<=900)*(fbuf+800*y+x)=0x00ffff;else*(fbuf+800*y+x)=color;}}delay();	
}int fimd_lcd()
{int x=400,y=240,x1=400,y1=240,flag_x=1,flag_y=1,flag_x1=1,flag_y1=1;lcd_PortInit();lcd_Init();while(1){if(x==30)flag_x=1;	//x have to increaseif(x==770)flag_x=0;	//x have to decreaseif(y==30)flag_y=1;	//y have to increaseif(y==450)flag_y=0;	//y have to decreaseif(x1==30)flag_x1=1;	//x1 have to increaseif(x1==770)flag_x1=0;	//x1 have to decreaseif(y1==30)flag_y1=1;	//y1have to increaseif(y1==450)flag_y1=0;	//y1 have to decreaseif(flag_x)x=x+2;else x-=2;if(flag_y)y++;elsey--;if(flag_x1)x1++;else x1--;if(flag_y1)y1=y1+2;elsey1=y1-2;lcd_screen(x,y,x1,y1,0xffffff);	}return 0;
}


这篇关于s5pv210 LCD控制器初始化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100869

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperationFilter 这个是百度知道的。主要用于在Swagger生成的API文档中动态地添加或修改操作(即API接口)的元数据。 用处:可以自动地为 Swagger/OpenAPI

@postconstruct初始化的操作

从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。这两个注解被用来修饰一个非静态的void()方法 。写法有如下两种方式: @PostConstruct Public void someMethod() {}

spring和tomcat初始化的类和注解

1.InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。 spring为bean提供了两种初始化bean的方式,实现InitializingBean接口,实现afterPropertiesSet方法,或者在配置文件中同过init-method指定,两种方式可以同时使用 实

IBM Storwize V7000存储控制器故障节点报错574

背景:由于客户机房搬迁,需要下电迁移设备。该存储自2016年投入生产使用后,从未关过机,已正常运行七八年时间,期间只更换过硬盘,无其他硬件故障。 在GUI界面点击关闭系统后,大概等了40分钟,存储仍未关机,所有硬盘状态灯绿色常亮,面板无报错。到设备后面看控制器的状态,发现node2已经正常关机了,node1仍然在运行,又等了大概20分钟还没有关机,直接将电源线给拔掉了。 再次上电以后,发现

LabVIEW环境中等待FPGA模块初始化完成

这个程序使用的是LabVIEW环境中的FPGA模块和I/O模块初始化功能,主要实现等待FAM(Field-Programmable Gate Array Module,FPGA模块)的初始化完成,并处理初始化过程中的错误。让我们逐步分析各部分的功能: 1. Wait for FAM Initialization框架 此程序框架用于等待I/O模块成功初始化。如果在5秒钟内模块没有完成配

dp(背包问题) 恰好、至少、至多初始化

状态表示的初始化(一般情况) f[i][j] i:前i件物品 体积至少为j 枚举体积时可以是负数(体积为负数时等价于体积为0) max f[i][j] = {-0x3f} f[i][0] = 0min f[i][j] = { 0x3f} f[i][0] = 0cnt f[0][0] = 1 体积至多为j 枚举体积时不能是负数 max f[i][j] = 0min f[i][j]

Windows11上使用WSL2,提示:系统尚未使用systemd作为初始化系统(PID 1)启动

前言 略 报错信息 System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 解决方法 使用如下命令 # windows终端,执行如下命令wsl --update# 登录ubuntu系统,执行如下命令s