本帖最后由 bbslhb 于 2013-5-31 10:48 编辑
一直用winAVR,现在改一个用ICCAVR写的程序。
其他都没事,就有一点不好改。
程序用到了char,int,long的变量、数组,并且是存在eeprom中的。
ICCAVR很方便,直接在定义前面加上#pragma data:eeprom,它后面跟的变量就是存放在eeprom中的。
当然了,如果是定义存放在eeprom中的char型,winavr和ICCAVR没啥区别。winavr还可以指定存放在哪个地址呢。
定义char,int,long型的数组就郁闷了。指定地址的话,winavr一次只能定义一个字节,long型的数组得给分配很多地址,读的时候也要分别读,
和ICCAVR的不用分配地址就能定义在eeprom相比,winavr太麻烦了。
怎么能使用winavr编译器,又不用在定义eeprom变量的时候,给每个字节分配地址呢?
/*
知道了,定义时加上EEMEM就行了。。。但是头文件要用eeprom.h
*/
|