优龙的Bootloader的LCD显存的使用

比如说 320*240 的屏 它就有 320*240 个点,因为颜色是 16 位的,所有如果要填满 LCD ,要开辟 320*240*2 字节空间就足够了

 

 

#define LCD_XSIZE_TFT    (320)     

#define LCD_YSIZE_TFT    (240)

#define SCR_XSIZE_TFT    (LCD_XSIZE_TFT*2)

#define SCR_YSIZE_TFT    (LCD_YSIZE_TFT*2)

#define LCDFRAMEBUFFER 0x33800000

 

// 画点函数

static void PutPixel(U32 x,U32 y,U16 c)

{

    if(x<SCR_XSIZE_TFT && y<SCR_YSIZE_TFT)

        frameBuffer16BitTft[(y)][(x)] = c;

}

 

U16 (*frameBuffer16BitTft)[SCR_XSIZE_TFT];

 

frameBuffer16BitTft=(U16 (*)[SCR_XSIZE_TFT])LCDFRAMEBUFFER;

 

frameBuffer16BitTft[(y)][(x)] = c; 就相当于 y* 640+x 其地址为 0x33800000+ y* 640+x*2

 

U16 是说的 RGB 颜色的值 16 位的数据

 

所以点( 0 0 显存地址为   frameBuffer16BitTft 0 0

(0,0)    frameBuffer16BitTft[0][0]      0x33800000

(1,0)    frameBuffer16BitTft[0][1]      0x33800000+1*2
(2,0)    frameBuffer16BitTft[0][2]       0x33800000+2*2
  .........................
 (319,0)    frameBuffer16BitTft[0][320]    0x33800000+319*2

………………………………………..
(0,1)        frameBuffer16BitTft[1][0]    0x33800000+(1*640)+319*2

..........................

(0,239)    frameBuffer16BitTft[239][0]    0x33800000+(239*640)+319*2

............................

(319,239)    frameBuffer16BitTft[239][319]

 

 

320*2 是显示一行要的颜色字节个数 一行 320 个点,一个点 2 个字节数据

开辟数组时 U16 类型的,所以一个 RGB 数值 就占一个存储单元,

总共有 240

 

///

作者:宇帆 cfanlwn

时间:2010-01-12  17:05:42

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值