Как записать переменную float в EEPROM

подскажи пожалуйста, как записать перененную тапа float в eeprom значение переменной типа float округлены до сотых (000.00) Может как то по разрядно можно записать, и использовать тип переменной int. но у меня не получилось. Т к задача алгоритма работа с этими цифрами (сложение вычитание) и при любом изменении запись в eeprom. (изменения не часто 1 раз в 5 или 10 мин) пример:

  1. #include <mega8.h>
  2. #include <delay.h>
  3. #include <stdio.h>
  4. #include <lcd.h>
  5. #asm
  6. .equ __lcd_port=0x12
  7. #endasm
  8. eeprom int a=1;
  9. (float)
  10. void main(void)
  11. {
  12. char lcd_buffer2[15];
  13. float m1;
  14. m1=a;
  15. PORTB.0=1;
  16. lcd_init(16);
  17. while(1)
  18. {
  19. sprintf(lcd_buffer2,"a=%3.2f, m1=%3.2f",a,m1);
  20. lcd_gotoxy(0,0);
  21. lcd_puts(lcd_buffer2);
  22. delay_ms(100);
  23. lcd_clear();
  24. if (PINB.0==0)
  25. {
  26. a=a+1;
  27. delay_ms(20);
  28. }
  29. }//while
  30. }//main

Барабашка

Записывать переменную в EEPROM (ИХМО) нужно перед выключением питания. Как это реализовать другой вопрос. Например: можно повесить это на вешнее прерывание которое будет контролировать питание и при снижении производить запись.
Если вы пишете в CVAVR, то что вам мешает сделать так:

  1. eeprom float ee_m1;