天嵌 ARM开发社区

 找回密码
 注册
查看: 1653|回复: 2

关于裸奔实验的一点疑惑

[复制链接]
chenyajun0077 发表于 2013-3-3 11:08:26 | 显示全部楼层 |阅读模式
本帖最后由 chenyajun0077 于 2013-3-3 11:18 编辑

1.首先是关于流水灯的实验,重点在于以下函数,对这个函数的功能我把data尝试代入1,2,4,8以后还是无法理解,麻烦看懂此函数的朋友给详细讲解一下。
void Led_Display(int data)
{
     rGPBDAT = (rGPBDAT & ~(0xf<<5)) | ((~data & 0xf)<<5);  
}
2.关于LCD显示BMP图的问题,函数如下:
void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp[])
{
int x,y;
U32 c;
int p = 0;
    for( y = y0 ; y < l ; y++ )
      {
         for( x = x0 ; x < h ; x++ )  
          {
           c = bmp[p+1] | (bmp[p]<<8) ;
           if ( ( (x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_YSIZE_TFT) )
           LCD_BUFFER[y0+y][x0+x] = c ;
           p = p + 2 ;
          }
    }
}
       该函数里面,y正代表水平方向向右,x正代表竖直方向向下,双层循环赋值的时候先是y保持不变,x即竖直方向赋值,而按我理解LCD应该以行赋值的,这里怎么矛盾了?
       其次我初次做测试程序的时候,LCD是4.3寸天嵌屏,有个触摸屏小程序是可以测试我去触摸LCD屏时候的位置的,我做该测试的时候发现,xy轴的坐标是在右上为(0,0)小值,左下最大,那是为什么?好像又和《裸奔3部曲》里的说法矛盾了。
3.关于nor 和 nand flash ,我们烧写程序的时候是打到nor flash 进入CRT然后选择需要烧写boot或者程序之类,烧写程序是在0X30000000地址,之后我们要看烧写程序的时候,是打到nand位置,从而进入程序。是不是可以理解成0X30000000是nand flash的首地址,而0x0000000 ~0x2FFFFFF都是nor flash 的地址?

       第一次发帖,很多格式没顾及到,请看客谅解,麻烦懂的朋友耐心解答,不甚感激。


 楼主| chenyajun0077 发表于 2013-3-4 15:02:50 | 显示全部楼层
求管理员大牛回答呀~~
亚瑟王 发表于 2013-3-4 16:57:35 | 显示全部楼层
1、对GPBDAT的5、6、7、8位赋值。
2、左上角是原点,右下角是最大值。X是宽,Y是高。比如4.3寸屏X是480,Y是272.
3、先把要烧写的东西读到内存中,然后再从内存写到Nand或Nor。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-13 17:15 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表