Pretvarjanje v plavajoči vejici številko v bajt

M

Maverickmax

Guest
Živjo

Ker sem uspel uporabiti M42C02 preko I2C.Zdaj moram vedeti, kako spraviti int (2 bajta), long int vrednosti (4 bytes) vejico številka (4 bytes) v EEPROM čipu.Ampak jaz nimam pojma, kako to storiti.Vaša pomoč bi bila appreicated

MM

 
Recimo, plavajoče rezultat točke dobimo iz senzorja z 16-bitno resolucijo, lahko uporabljamo za shranjevanje unijo surovi rezultat senzor.Z uporabo zveze, hranimo v plavajoči vejici (4-bytes) v uniji.Prednost je, da varčujemo z veliko za eeprom, ki ga skladiščijo samo neobdelane podatke.Razmislite o tem:

Code:typedef union

(

unsigned int i; / / neobdelane podatke, pridobljene iz senzorja

float f;

Vrednost);void main ()

(

Vrednost temp_val;/ / store temp_val.i v EEPROM za 2 bajta tukaj za shranjevanje surove podatke

eeprom_store2bytes (naslov, temp_val.i);

/ / branje vrednosti nazaj in ga shranite nazaj v temp_val.i

eeprom_read2bytes (naslov, in temp_val.i);

)

 
TechToys wrote:

Razmislite o tem:Code:typedef union

(

unsigned int i;

float f;

Vrednost);void main ()

(

Vrednost temp_val;/ / store temp_val.i v EEPROM za 4 bytes tukaj

eeprom_store4bytes (naslov, temp_val.i);

/ / branje vrednosti nazaj in ga shranite nazaj v temp_val.i

eeprom_read4bytes (naslov, in temp_val.i);/ / v plavajoči vejici rezultat tukaj, se lahko natisne na LCD

temp_val.f = (float) temp_val.i;

)

 
Unija ima enako obliko kot struct, pa je članov sindikata prekrivajo, vse zaseda isti prostor pomnilnika.

 
Živjo

Ali so revidirani kodo, kot zgoraj, ali pa se lahko nanaša na drugo nit

http://www.edaboard.com/viewtopic.php?t=81265&highlight=eeprom floating point

John Leung

 

Welcome to EDABoard.com

Sponsor

Back
Top