在屏幕上面显示一个三色条纹。
三秒后,在屏幕上面显示一个彩虹 sleep(3);
三秒后,在屏幕上面显示一个四叶草
注意:注意光标位置。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
//打开屏幕
int fd = open("/dev/fb0",O_RDWR);
if(-1 == fd)
{
printf("open lcd error\n");
}
//准备数据并且写入
int color[480][800];
int i,j;
//遍历二维数组的每一行
for(i=0;i<480;i++)
{
if(i<=160)
//遍历二维数组每一行的每一列
for(j=0;j<800;j++)
{
color[i][j]=0x00ff0000;
}
else if(i<=320)
for(j=0;j<800;j++){
color[i][j]=0x0000ff00;
}
else
for(j=0;j<800;j++){
color[i][j]=0x000000ff;
}
}
write(fd,color,800*480*4);
sleep(3);
close(fd);
int fd1= open("/dev/fb0",O_RDWR);
if(-1 == fd1)
{
printf("open lcd error\n");
}
int color1[480][800];
for(i=0;i<480;i++)
{
//遍历二维数组每一行的每一列
for(j=0;j<800;j++)
{
if((i-480)*(i-480) + (j-400)*(j-400)<51*51)
color1[i][j]=0x00FF0033;
else if((i-480)*(i-480) + (j-400)*(j-400)<107*107)
color1[i][j]=0x00FF6600;
else if((i-480)*(i-480) + (j-400)*(j-400)<168*168)
color1[i][j]=0x00FFFF00;
else if((i-480)*(i-480) + (j-400)*(j-400)<234*234)
color1[i][j]=0x0000FF00;
else if((i-480)*(i-480) + (j-400)*(j-400)<307*307)
color1[i][j]=0x0000FFFF;
else if((i-480)*(i-480) + (j-400)*(j-400)<385*385)
color1[i][j]=0x000000FF;
else
color1[i][j]=0x00FF00CC;
}
}
write(fd1,color1,800*480*4);
sleep(3);
close(fd1);
int fd2= open("/dev/fb0",O_RDWR);
if(-1 == fd2)
{
printf("open lcd error\n");
}
int color2[480][800];
for(i=0;i<480;i++)
{
//遍历二维数组每一行的每一列
for(j=0;j<800;j++)
{
int a = (i-150)*(i-150) + (j-300)*(j-300);
int b = (i-330)*(i-330) + (j-300)*(j-300);
int c = (i-150)*(i-150) + (j-500)*(j-500);
int d = (i-330)*(i-330) + (j-500)*(j-500);
int r2 = 150*150;
if (a<r2 && b<r2)
color2[i][j]=0x00FF0033;
else if(a<r2 && c<r2)
color2[i][j]=0x00FF6600;
else if(b<r2 && d<r2)
color2[i][j]=0x00FFFF00;
else if(c<r2 && d<r2)
color2[i][j]=0x0000FF00;
else
color2[i][j]=0x00FF00CC;
}
}
write(fd2,color2,800*480*4);
//关闭
close(fd2);
return 0;
}