ARM lcd 显示 问题

来源:互联网 发布:上海数据港上市时间 编辑:程序博客网 时间:2024/05/26 09:55
/*my word*/#define X )*2+1#define _ )*2#define s ((((((((((((((((((((((((((((((((0unsigned int my_word_1[]={    s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ _ X _ X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ X X X X X _ X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ _ X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ X X X X X X _ X _ X _ X _ X _ X _ X X _ X _ X X _ X X X _ _ , s X X X X X X X X X X X X X X X X X _ X _ X X X X X X X X X X X _ , s _ X X X X X X X X _ X X X _ _ _ X _ _ _ X X X X X X X X X _ _ _ , s _ _ X X X X X X X _ _ X X _ _ X X X X X _ X _ X X X _ _ _ _ _ _ , s _ _ _ _ X X X X X X X X X X X X X X X X X _ X X X _ _ _ _ _ _ _ , s _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ X X X _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ _ X X X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ _ X X X _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ _ X X X _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ , s _ _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ _ ,  s _ _ _ _ X X X _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ X X X _ _ _ _ _ _ _ , };

用下面这个会造成输出的字母左右颠倒,应该是小端存储的原因,但是改成下面第二个的时候,屏幕中间一条由零零碎碎的点构成的线,void print_3232(char * word,int pixel_x,int pixel_y){ char bit_long = 8; char num_in_line = 4; char line = 32; char i=0,j=0,k=0; char value=0;   for(k=0;k<line;k++)  {     for(j=0;j<num_in_line;j++)         {             value = (word+k*num_in_line)[j];        for(i=0; i<bit_long; i++)            {               if (value & 0x80)                  (*((volatile unsigned int *)(0xa0500000+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0x8888;                                                 value = value << 1;             }         }  }}

void my_print_3232(char * word,int pixel_x,int pixel_y){ char bit_long = 8; char num_in_line = 4; char line = 32; char i=0,j=0,k=0; char value=0;    for(k=0;k<line;k++)  {     for(j=num_in_line-1;j>=0;j--)         {             value = (word+k*num_in_line)[j];        for(i=0; i<bit_long; i++)            {               if (value & 0x80)                  (*((volatile unsigned int *)(0xa0500000+pixel_y*1280+pixel_x*2 + k*1280+j*16+i*2))) = 0x8888;                                                 value = value << 1;             }         }  }}
/*由于字模型是32*32, unsigned int 这里参数改成unsigned int 就对了,下面也有要改的地方*/
void my_print_3232(unsigned int * word,int pixel_x,int pixel_y)/*子模的首地址,显示屏的x y 坐标*/{ char bit_long = 32; char num_in_line = 4; char line = 32; char i=0,j=0,k=0; unsigned int value=0; char temp=0;   for(k=0;k<line;k++)  {     value = word[k];//从字模数组中取4个字节      for(i=0; i<bit_long; i++)       {           if (value & 0x80000000)//每次先检查高位,然后 左移动取 直到32位移完                (*((volatile unsigned int *)(0xa0500000+pixel_y*1280/*显示屏是640*480的,这里是640*2(用2个字节表示一个颜色)(数组行)*/+pixel_x*2/*数组列*/ + k*1280+j*16+i*2/*调色板的对应的位置置相应的颜色*/))) = 0x8888;//既然颜色是2个字节16位(565分布),后面的赋值也是16位,那这里为什么指针要设成指向4个字节的???                                                 value = value << 1;        }         //}  }}


	
				
		
原创粉丝点击