请教如何处理才能让const unsigned char的数组不占用RAM空间?
本帖最后由 cw628 于 2012-10-22 22:39 编辑我使用winavr(makefile用的是avr studio 4.13自己生成的)编译,在程序中定义了一个const unsigned charCharTable的数组,为何编译的时候占用了我的RAM资源???我把这个数组删掉后,RAM占用就下来了,我明明在前面用const限制了应保存在FLASH里面的呀????
看你的编译器环境 应该这样 const prog_uchar char_table[]=....
/**
\ingroup avr_pgmspace
\typedef prog_uchar
Type of an "unsigned char" object located in flash ROM.
*/
typedef unsigned char PROGMEM prog_uchar; 帮顶{:biggrin:} PROGMEM是关键
记得#include <pgm/space.h> 已搞定,感谢各位大大 very good !!! 还有个问题,要引用这组数据时该如何用,我发现直接用CharTable时有问题,无法定位到想要数据,我按照如下方式使用:
void LCD_WriteSingalCharEN(UBYTE Char_EN)
{
UBYTE Line;
Char_EN -= 32;
for ( Line = 0; Line < 6; Line++ )
{
LCD_Write( CharTable, DATA );
}
} cw628 发表于 2012-10-23 22:24 static/image/common/back.gif
还有个问题,要引用这组数据时该如何用,我发现直接用CharTable时有问题,无法定位到想要数据,我 ...
呵呵,刚刚百度了一下,用pgm_read_byte就行了,谢谢 嗯,受教了,我以前用的是keil,定义方式还差距蛮大的呢 二维数据指针使用总是出问题,高手指导
页:
[1]