[an error occurred while processing this directive] [an error occurred while processing this directive]
А ведь действительно все просто!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Сергей Полушин 27 августа 2001 г. 12:44
В ответ на: Не все так просто ! отправлено Kuka 27 августа 2001 г. 11:49

Попробовал и получилось! Указал DPL1 и DPH1 как переменные по адресам 0x84 и 0x85. МК видимо к ним сам обращается при команде MOVX. *ptr - указатель в XDATA.
Читаю так:

WMCON = WMCON | 0x08;// Разрешаем доступ к EEPROM
WMCON = WMCON | 0x04;// Выбор DPS = 1
DPL1 = 0x00; // Адрес младш
DPH1 = 0x00; // Адрес старш
ptr = 0x0000; // Это обязательно!
EEPROMdata = *ptr; // Читаем число
WMCON = WMCON & 0xF7; // Запрещаем доступ к EEPROM

Пишу так:

WMCON = WMCON | 0x08;// Разрешаем доступ к EEPROM
WMCON = WMCON | 0x04;// Выбор DPS = 1
WMCON = WMCON | 0x10;// Разрешаем писать в EEPROM
DPL1 = 0x00; // Адрес младш
DPH1 = 0x00; // Адрес старш
*ptr = EEPROMdata; // Пишем число в EEPROM
while (!(WMCON & 0x02)); // Ждем конца записи ~ 10 мс! Долго!
WMCON = WMCON & 0xEF; // Запрещаем писать в EEPROM
WMCON = WMCON & 0xF7; // Запрещаем доступ к EEPROM

Спасибо за советы! Работает!


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru