这是在《嵌入式系统开发与应用实验教程》上的一段程序,是44b0驱动320240的程序,
/****************************************************** LCD_PutPixel(x,y,c)--把像素发送到显示数据缓存区
**************************************************/ #define LCD_PutPixel(x,y,c) (*(INT32U *)(LCD_VIRTUAL_BUFFER+(y)*SCR_XSIZE/2+((x))/8*4))=
(*(INT32U *)(LCD_VIRTUAL_BUFFER+(y)*SCR_XSIZE/2+((x))/8*4)) & (~(0xf0000000>>((( (x) )%8)*4)))|((c)<< (7- ((x))%8)*4)
用的是4位单扫描 我不明白的地方在(LCD_VIRTUAL_BUFFER+(y)*SCR_XSIZE/2+((x))/8*4)) 这里(y)*SCR_XSIZE/2+((x))/8*4这里的除以2 和后面的除以8是不是为了将显示的位置改为缓存中的地址? 那么,在图里的VD3是不是包含了四行像素?(我不知道该怎么说,我用过12232,这里是不是像12232那样,VD3包含四行,一列,这四行一列用一个16进制数表示),那么,如果是这样的话,在调用这个函数时,x是不是只能是偶数?
|