本帖最后由 790095673 于 2016-4-27 19:38 编辑
我用的是MCC18编译器,百度过,说定义到rom中的语言为const rom uchar(图片数组),而不是单const就可以,但是烧写在实物中后,在数组前面加上rom,128*64不能显示,不加的话就可以,想知道这是为嘛?求告知!!!感激不尽!!!难道写进rom后读取的方式不一样么?
- void lcd_pic(unsigned char *adder1) //将图片写入12864
- {
- unsigned int x,y,i;
- unsigned int tmp=0;
- for(i=0;i<10;){ //分两屏,上半屏和下半屏,因为起始地址不同,需要分开
- for(x=0;x<32;x++){ //32行
- TransferData(0x34,0);
- TransferData((0x80+x),0);//列地址
- TransferData((0x80+i),0); //行地址,下半屏,即第三行地址0X88
- TransferData(0x30,0);
- for(y=0;y<17;y++)
- TransferData(adder1[tmp+y],1);//读取数据写入LCD
- tmp+=16;
- }
- i+=8;
- }
- TransferData(0x36,0); //扩充功能设定
- TransferData(0x30,0);
- }
复制代码不加rom关键字的话,编译不通过,需要把p18f452.lkr文件里面的databank的地址修改了才可以,所以想把这个图片常量保存到rom中,但是就是不行,求答案,谢谢!!!
此帖出自
小平头技术问答
使用强制类型转换试试,lcd_pic((unsigned char *)photo1)
一周热门 更多>