PIc16f886 不将字符串转换为 int

问题描述 投票:0回答:1

我正在尝试从 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

microcontroller pic microchip hi-tech-c
1个回答
0
投票

由于 PIC16F866 等资源有限,用户 Active Watersaver 对于为嵌入式控制器创建代码似乎非常陌生。

该用户似乎对使用 stackoverflow 很陌生。用户最好阅读并理解有关如何提问的发帖指南。

阅读 Microchip 文档并分析

eeprom_write();
函数的实现同样会有所帮助。

用户似乎不明白的是,PIC16F866 中的 EEPROM 只能以八位组(8 位块)存储数据。较大的数据类型(如

int
long
)必须分为 8 位八位字节,每个八位字节写入不同的 EEPROM 地址。对于读取,必须从 EEPROM 读取与
int
long
关联的所有八位字节,然后重新组装为关联的数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.