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

 
 
> AT89S8253, Проблема чтения значений из внутреннего EEPROMа
thunder367
сообщение Aug 7 2007, 11:49
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 7-08-07
Пользователь №: 29 619



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

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

include <reg8253.h>

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=<значение>, то естественно пишет это значение.

Кто, что думает по этому поводу, где косяки??
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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