大家知道CVAVR编译器的EEPROM函数在哪里的,我好想没有找到,谢谢。
如题 不明白问的是什么 暂时没听说有 找不到的用eeprom关键字就行了不象gcc 定义后同RAM一样用,从不用什么函数 好象没有找,只要装了CVAVR,就在你的电脑中。 定义变量:eeprom char i;或 eeprom int i; 等,只要加入关键字 eeprom 即可赋值: i=123; 或 i=1234; 被马老师说了一下实在难为情,再一次找了一遍,还看了编译器的有关英文说明还是没有找到,可能自己漏了那个地方吧,呵呵。谢谢大家我知道是怎么用的,但是我想看看函数原型。 CVAVR不熟。
但估计也和IAR差不多。
表面上没有EEPROM库函数,实际上是有的,在库里面。
定义个EEPROM变量,对其读写,
看编译汇编代码,一般是调用某个库函数来实现EEPROM操作的。 谢谢,昨天想到看编译代码的忘了,自己太菜菜了 写的:(我这没有读的)
__EEPROMWRB:
SBIS EECR,EEWE;
RJMP __EEPROMWRB1
WDR;
RJMP __EEPROMWRB;
__EEPROMWRB1:
IN R25,SREG
CLI;
OUTEEARL,R26
OUTEEARH,R27
SBIEECR,EERE;
IN R24,EEDR ;
OUTEEDR,R30
SBIEECR,EEMWE
SBIEECR,EEWE
__EEPROMWRB0:
OUTSREG,R25
RET 这是CVAVR里的注解:你自己看一看
Accessing the EEPROM
-------------------------------------------------------------------
/* The value 1 is stored in the EEPROM during chip programming */
eeprom int alfa=1;
eeprom char beta;
eeprom long array1;
/* The string is stored in the EEPROM during chip programming */
eeprom char string[]="hello";
void main(void) {
int i;
/* Pointer to EEPROM */
int eeprom *ptr_to_eeprom;
/* Write directly the value 0x55 to the EEPROM */
alfa=0x55;
/* or indirectly by using a pointer */
ptr_to_eeprom=&alfa;
*ptr_to_eeprom=0x55;
/* Read directly the value from the EEPROM */
i=alfa;
/* or indirectly by using a pointer */
i=*ptr_to_eeprom;
}
Pointers to the EEPROM always use 16 bits. 用eeprom关键字, 程序自动完成的 其实要自己写个也可以的,AVR的PDF里面就写了,看EEPROM那一节就可以了,CV自带的不能指定地址,你定义了一个eeprom int I;
你都不知道它存到EEPROM的哪里去了,还是感觉自己写一个好 CVAVR就是这个缺点不能选择写哪个地址,所以我想看看原型函数,我不想自己使用的地址是从0x00开始的 AVR的PDF里面真的写的很清楚了,看一看就知道怎么搞了 cuikai12345 发表于 2009-4-24 09:16 static/image/common/back.gif
这是CVAVR里的注解:你自己看一看
Accessing the EEPROM
我是菜鸟,求教,你这个是在哪找到的? shjw 发表于 2009-4-24 15:05 CVAVR就是这个缺点不能选择写哪个地址,所以我想看看原型函数,我不想自己使用的地址是从0x00开始的 ...
可以自定地址的。
页:
[1]