부동 소수점 숫자로 변환"바이트

M

Maverickmax

Guest
안녕

이후 가능한 I2C를 통해 M42C02를 사용하였습니다.이제 내가 아는 방법을 int (2 바이트), 긴 int 값 (4 바이트) 부동 소수점 EEPROM이 칩 (4 바이트)를 저장할 필요합니다.하지만 내가 어떻게 할 어떠한 단서도하지 않습니다.귀하의 도움이 될 것이라고 appreicated

MM은

 
부동 소수점 연산 결과를 가정해 센서 16 비트 해상도에서 얻은 것입니다, 우리는 원시 센서의 결과를 저장할 노조 사용할 수있습니다.노동 조합을 사용함으로써, 우리는 부동 소수점 연합 (4 바이트) 저장할 수있습니다.장점은, 우리는 오직 원시 데이터를 저장하여 EEPROM이에 대한 많은 저장합니다.이것을 고려 :

코드 :typedef 조합

(

서명 int 난; / / 원시 데이터를 센서로부터 얻은

플로트 f를;

) 값;메인 무효 ()

(

가치 temp_val;/ / 2 바이트 EEPROM이 여기에 저장할 temp_val.i 원시 데이터를 저장할

eeprom_store2bytes (temp_val.i) 주소;

/ / 값을 다시 읽어 temp_val.i에 다시 가게

eeprom_read2bytes (주소 & temp_val.i);

)

 
TechToys 썼습니다 :

이것을 고려 :코드 :typedef 조합

(

서명 int 난;

플로트 f를;

) 값;메인 무효 ()

(

가치 temp_val;/ / 4 바이트 EEPROM이 여기에 저장할 temp_val.i

eeprom_store4bytes (temp_val.i) 주소;

/ / 값을 다시 읽어 temp_val.i에 다시 가게

eeprom_read4bytes (주소 & temp_val.i);/ / 부동 소수점 결과를 여기에 부분, LCD 부분에 인쇄될 수있습니다

temp_val.f = (float)은 temp_val.i;

)

 
노조는 그러나 노조의 구성원 모두 동일한 메모리 공간에 중복되는 구조체와 같은 형태로있다.

 
안녕

적 이상으로 코드를 수정하거나 다른 스레드를 참조할 수도있습니다

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

존 양조위

 

Welcome to EDABoard.com

Sponsor

Back
Top