我正在尝试从 eeprom 读取保存的值,在将读取的数据转换为整数后,将 eeprom 读取为字符很容易完成,但不起作用 我的代码是:
char AM[];
int per,vt,vtt;
AM[0]=eeprom_read(ecur[0]);
__delay_ms(50);
AM[1]=eeprom_read(ecur[1]);
__delay_ms(50);
AM[2]=eeprom_read(ecur[2]);
__delay_ms(50);
AM[3]=0;
vcur=atoi(AM);
per=0,vt=0;vtt=0;
per=vcur/100;
vt=vcur+(per*30);
vtt=vcur-(per*30);
LCD_Clear();
LCD_Set_Cursor(1, 1);
LCD_Write_String(vcur);
}
char AM[];
int per,vt,vtt;
AM[0]=eeprom_read(ecur[0]);
__delay_ms(50);
AM[1]=eeprom_read(ecur[1]);
__delay_ms(50);
AM[2]=eeprom_read(ecur[2]);
__delay_ms(50);
AM[3]=0;
vcur=atoi(AM);
//per=AM1;
//vt=AM2;
//vtt=AM3;
//vcur=per*100;
//vcur=vcur+(vt*10);
//vcur=vcur+vtt;
per=0,vt=0;vtt=0;
per=vcur/100;
vt=vcur+(per*30);
vtt=vcur-(per*30);
LCD_Clear();
LCD_Set_Cursor(1, 1);
LCD_Write_String(vcur);
我已经尝试过atoi,xtoi,不工作还尝试从eeprom中读取值作为int not woking
由于 PIC16F866 等资源有限,用户 Active Watersaver 对于为嵌入式控制器创建代码似乎非常陌生。
该用户似乎对使用 stackoverflow 很陌生。用户最好阅读并理解有关如何提问的发帖指南。
阅读 Microchip 文档并分析
eeprom_write();
函数的实现同样会有所帮助。
用户似乎不明白的是,PIC16F866 中的 EEPROM 只能以八位组(8 位块)存储数据。较大的数据类型(如
int
和 long
)必须分为 8 位八位字节,每个八位字节写入不同的 EEPROM 地址。对于读取,必须从 EEPROM 读取与 int
或 long
关联的所有八位字节,然后重新组装为关联的数据类型。