Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Неужели никто не знает про EEPROM AT89S8253?

Отправлено thunder367 07 августа 2007 г. 14:56


Пишу тут программку к одной железяке, обнаружил, что не удается прочитать за раз из EEPROM число типа float (пишу на Си, оболочка Keil). Подскажите пожалуйста, где проблема.

//===============================================================

include

xdata float Cfc_e _at_ 0x001; // Инициализация переменных EEPROM
xdata float temp _at_ 0x005;
float Cfc,Cfc1; // Переменные ОЗУ

//================================================================

void Eeprom_w (float *Var_w, float *Data_w);

void Eeprom_w (float *Var_w, float *Data_w)

{

EECON=EECON|EEMEN_; // Разрешаем работу с EEPROM
EECON=EECON|EEMWE_; // Разрешаем запись в EEPROM
EECON=EECON|EELD_; // Запись страничная по 4 байта

*Var_w=*Data_w;
while (!(EECON & RDY_))
{}
EECON=EECON&!EELD_; // Выключаем запись страницы
EECON=EECON&!EEMWE_; // Выключаем запись EEPROM
EECON=EECON&!EEMEN_; // Запрещаем работу с памятью

return;
}

//===================================================================

void main (void)
{

Cfc=2.94;
Eeprom_w(&Cfc_e,&Cfc); // Присвоение и запись константы

EECON=EECON|EEMEN_; // Разрешение работы с памятью
EECON=EECON|EELD_; // Разрешение чтения
Cfc1=Cfc_e; // Чтение
EECON=EECON&!EELD_; // Запрещение чтения
EECON=EECON&!EEMEN_; // Запрещение работы с памятью

Eeprom_w(&temp,&Cfc1); // Запись прочитанного в другое место
while(1)
{}

}
//===============================================================


Небольшие коментарии к программе:

- функция записи работает нормально (читал EEPROM программатором и видел 4 записанных байта)
- при записи второй раз (прочитанная переменная) - пишет мусор, если задаю явно Cfc1=<значение>, то естественно пишет это значение.

Кто, что думает по этому поводу, где косяки??



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru