怎样才能将浮点数正确写入EEPROM(M8)?
请高手指教,怎样才能将浮点数(比如说)比如说36.6666EEPROM(M8)?谢谢了-----此内容被basten820226于2006-08-31,19:35:06编辑过 结构、联合 用定点方法,如可以将36.6666转换成366666(0x05984A),分三个字节存储。这只是一种办法。楼主可以参考计算机内的定点小数的存储。 哦,谢谢楼上的兄弟,还有具体的参考资料么? /*****************************************************************************/
#include <avr/io.h>
#include <avr/eeprom.h>
double EE_double EEMEM = 1.235;
int main()
{
volatile double RAM_double1 = 36.6666;
volatile double RAM_double2 = 5.68;
eeprom_write_block((const void*)&RAM_double1, (void*)&EE_double, 4);
eeprom_read_block((void*)&RAM_double2, (void*)&EE_double, 4);
while(1);
return 0;
} 4楼和我用的一样,感觉也没有问题 GCC新兵,问个问题:double EE_double EEMEM = 1.235; 指向E2PROM的什么地址?如何计算? 谢谢各位,如果我想在程序源文件初始化EEPROM数据,可以这样么?(ICC环境)
#pragma data:eeprom
float n=36.6666
char table[]={0,1,2,3,4,5};
#pragma data:data
┅┅┅┅
float k;
EEPROM_READ((float)&n,k);
EEPROM_WRITE((float)&n,k);
初学AVR,请高手多多指教 mark mark 联合体 36.6666
表示为浮点数:
设高位字节在左:4212AA99
float n=36.6666;
unsigned char table;
(float)table = n;
然后再把table数组一个个存入即可。
不同的环境下要区分大小端。 如果浮点数是一个结构体的成员,上述方法好象不好用?(在STM32下) 用指针!
floatDf_k;
Df_k = 1.01;
I2C_EE_BufferWrite((uint8 *)&Df_k,12,4);//写模块漂移斜率Df_k的值; testcode 发表于 2006-9-1 06:23 static/image/common/back.gif
/*****************************************************************************/
#include
#include
double EE_double EEMEM = 1.235;
这一句是啥意思呀?
页:
[1]