[Cortex-M0技术交流] 12864任意点显示任意大小图形文字-希望能弄的完完美点

[复制链接]
2890|4
 楼主| kyzb001 发表于 2011-10-27 09:03 | 显示全部楼层 |阅读模式
ge, ui, CD, LCD, ov
直接贴上处理部分代码。
12864 思路。  建立缓存, 每次显示整屏刷写, 操作缓存。
代码如下
  1. #define array(array_name,x,y) array_name[x][y]
  2. uint8_t CogLCDBuf[CogLCDMAXPAGE][CogLCDMAXCOLUMN];//缓存
  3. void DisPlay_Picture(uint8_t str,uint8_t x,uint8_t y,uint8_t wight,uint8_t high)
  4. {
  5. uint8_t Cache,HighByte;
  6. uint8_t Page,OverLong;
  7. uint8_t PageNum,CountPage,CountXcolumn;

  8. Page=y/8;  //star in ?  page
  9. OverLong=y%8;// over data size

  10. PageNum=high/8;    //字模站几页
  11. if(high%8)
  12. PageNum++;

  13. #define array_name LCD_48X48_4CODE  //定义缓存的字模
  14. for(CountPage=0;CountPage<PageNum;CountPage++)
  15. {
  16. for(CountXcolumn=0;CountXcolumn<wight;CountXcolumn++)
  17. {
  18. Cache=CogLCDBuf[Page][x+CountXcolumn];
  19. HighByte=array(array_name,CountPage,CountXcolumn)<<OverLong;//LCD_48X48_CODE[CountPage][CountXcolumn]<<OverLong;
  20. CogLCDBuf[Page][x+CountXcolumn]=Cache|HighByte;
  21. }

  22. Page++;
  23. for(CountXcolumn=0;CountXcolumn<wight;CountXcolumn++)
  24. {
  25. Cache=CogLCDBuf[Page][x+CountXcolumn];
  26. HighByte=array(array_name,CountPage,CountXcolumn)>>(8-OverLong);
  27. CogLCDBuf[Page][x+CountXcolumn]=Cache|HighByte;
  28. }
  29. }

  30. CogLCDRedraw(); //刷屏

  31. }


实现任意坐标显示任意大小的图标文字。 这是现实一个,多个大家都会,就不发了。

想弄的完善点, 所以发上来,希望大家多多指教!

目前无任何bug
 楼主| kyzb001 发表于 2011-10-27 09:16 | 显示全部楼层
遇到二个问题,想请教大家

1: 函数传参怎么传递二维数组。
2:怎么通过不同的选择来修改宏定义
假设有个 x
当x=1的时候我宏
#define a 1
当x=2的时候我宏
#defube a  2
 楼主| kyzb001 发表于 2011-10-27 10:29 | 显示全部楼层
在发一个画点的函数,
  1. void DisPlay_Piont(uint8_t x,uint8_t y)
  2. {
  3.         uint8_t  Page,OverLong;

  4.         Page=y/8;
  5.         OverLong=y%8;

  6.         CogLCDBuf[Page][x]|=(0x01<<OverLong);                                                                       
  7.                                                                                                
  8.         CogLCDRedraw();                                                                                                                                                                                               
  9. }
weshiluwei6 发表于 2011-10-27 11:26 | 显示全部楼层
看不懂
 楼主| kyzb001 发表于 2011-10-28 08:47 | 显示全部楼层
看不懂
weshiluwei6 发表于 2011-10-27 11:26
忘记写注释了。  - -!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Is this my life

15

主题

624

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部