реклама на сайте
подробности

 
 
> AT89S8253 & Keil (C51) & EEPROM, проблема с размещением float в EEPROM
SSB777
сообщение Nov 13 2006, 07:19
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 16-10-06
Пользователь №: 21 343



Господа, помогите советом
Суть проблемы:
устройство на контроллере AT89S8253, программа на СИ пишется в Keil`e

во внутренней EEPROM необходимо хранить информацию - при размещении в EEPROM (xdata) переменных типа char или int все ОК! а вот при попытке разместить переменную типа float полная засада sad.gif

обявления
Код
sfr WMCON = 0x96;   /* Watchdog and Memory Control Register */

#define EEMEN  0x08  /* Internal EEPROM Access Enable: 1=Enabled */
#define EEMWE  0x10  /* Internal EEPROM Write Enable: 1=Enabled */
#define EEMds  0xE7  /* 11100111b Internal EEPROM Access&Write Disable */

float xdata Test;


запись (тупо, для примера)

Код
void WriteTest(void)
{
WMCON=WMCON|EEMEN;
WMCON=WMCON|EEMWE;  
Test=1.1; //0.028941;
WMCON=WMCON&EEMds;  
while (1) { if ((WMCON&0x2)==0x2) break; }
}


чтение

Код
float ReadTest(void)
{
float TempVariable;
WMCON=WMCON|EEMEN;
WMCON=WMCON|EEMWE;  
TempVariable=Test;
WMCON=WMCON&EEMds;  
while (1) { if ((WMCON&0x2)==0x2) break; }
return TempVariable;
}


в результате читаеся что угодно но только не то что записывалось

Сообщение отредактировал SSB777 - Nov 13 2006, 07:25


--------------------
Самое страшное животное - ЖАБА. Это сколько же людей она задушила!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 18:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016