pic18f452把12864图片定义到rom中,但是在前面加上const rom后程序运行无法读取到图片

2019-03-25 19:01发布

本帖最后由 790095673 于 2016-4-27 19:38 编辑

我用的是MCC18编译器,百度过,说定义到rom中的语言为const rom uchar(图片数组),而不是单const就可以,但是烧写在实物中后,在数组前面加上rom,128*64不能显示,不加的话就可以,想知道这是为嘛?求告知!!!感激不尽!!!难道写进rom后读取的方式不一样么?
  1. void lcd_pic(unsigned char *adder1)   //将图片写入12864
  2. {
  3.           unsigned int x,y,i;
  4.               unsigned int tmp=0;
  5.                for(i=0;i<10;){                //分两屏,上半屏和下半屏,因为起始地址不同,需要分开
  6.                for(x=0;x<32;x++){                                //32行
  7.                            TransferData(0x34,0);
  8.                            TransferData((0x80+x),0);//列地址
  9.              TransferData((0x80+i),0);        //行地址,下半屏,即第三行地址0X88
  10.                              TransferData(0x30,0);               
  11.                              for(y=0;y<17;y++)        
  12.                                               TransferData(adder1[tmp+y],1);//读取数据写入LCD
  13.                                    tmp+=16;               
  14.                     }
  15.                      i+=8;
  16.             }
  17.        TransferData(0x36,0);        //扩充功能设定
  18.             TransferData(0x30,0);
  19. }  
复制代码不加rom关键字的话,编译不通过,需要把p18f452.lkr文件里面的databank的地址修改了才可以,所以想把这个图片常量保存到rom中,但是就是不行,求答案,谢谢!!!

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
dcexpert
1楼-- · 2019-03-25 22:44
估计是指针引用方式的问题。
790095673
2楼-- · 2019-03-26 02:17
dcexpert 发表于 2016-4-27 20:00
估计是指针引用方式的问题。

你好,请问有什么方法可以解决么?
dcexpert
3楼-- · 2019-03-26 03:45
将调用部分的贴出来看看
790095673
4楼-- · 2019-03-26 09:24
本帖最后由 dcexpert 于 2016-4-28 22:46 编辑
dcexpert 发表于 2016-4-27 22:58
将调用部分的贴出来看看

微信截图_20160427193022.png 微信截图_20160427193032.png
微信截图_20160427193039.png
使用强制类型转换试试,lcd_pic((unsigned char *)photo1)


一周热门 更多>