MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки
 Новости   Конференция   Контакты 
 

Инициализация EEPROM

 Нoвaя темa  |  Наверх  |  Перейти к теме  |  Поиск  |  Правила  |  Вход 

ВНИМАНИЕ!
Вы просматриваете архив форума.

Этот форум работает только в режиме просмотра и поиска.

Действующий форум переведен на новый движок и
находится по адресу www.microchip.su

 Инициализация EEPROM
Автор: Lelick ()
Дата:   11/03/2004 23:56

PIC18F452, MPLab 6.40 + HT-PicC18 8
Как при программировании контроллера задать значение отдельных ячеек EEPROM. Или Весь EEPROM обну
лять или устанавливать в 0xFF.




 
 Re: Инициализация EEPROM
Автор: zksystem ()
Дата:   12/03/2004 02:48

#include <pic18.h>

__EEPROM_DATA(0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)
__EEPROM_DATA(0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F)

void
main (void)
{
}

- www.zaocita.ru - zksystem aka Konstantin I. Zuykov - icq: 82327775 -



 
 Re: Инициализация EEPROM
Автор: Lelick ()
Дата:   12/03/2004 13:52

Это хорошо, но хочется инициализировать не все байты начиная с первого, а лишь несколько начиная
с адреса XX.


 
 Re: Инициализация EEPROM
Автор: alho ()
Дата:   12/03/2004 14:37

EEPROM - имеет свой адресс в пространстве
(если память не изменяет 0х2100).
соответственно 256 ячеек лежат в диапазоне 0х2100...0х21FF

Пишешь (на асм):

org 0x2100
de 10,20,30,40

org 0x21A0
de 10,20,30,40

Успехов !!!


 
 Re: Инициализация EEPROM
Автор: Lelick ()
Дата:   12/03/2004 14:42

а в сишный код как это интегрировать?


 
 Смотря какой компилятор...
Автор: alho ()
Дата:   12/03/2004 15:22

Для CCS я делал так:
#ROM 0x2100 = {0x70, 0x17, 0x08, 0x0C, 0xE6, 0xFF, 0x7D, 0x41, 0x20, 0x5C, 0x8D,
0xFE, 0xCC, 0x41, 0x8E, 0x1A}
#ROM 0x2110 = {0x38, 0xA4, 0x8B, 0xD6, 0x94, 0x11, 0x00, 0x00, 0x00, 0x00, 0xEC,
0x13, 0x40, 0x0B, 0xB4, 0xFF}
#ROM 0x2120 = {0x7D, 0x5E, 0x83, 0xE5, 0x8D, 0xEA, 0x70, 0x44, 0x8E, 0x0B, 0xFD,
0x27, 0x8B, 0xB6, 0x28, 0x2A}
#ROM 0x2130 = {0x00, 0x00, 0x00, 0x00, 0xB8, 0x0B, 0xAA, 0x0A, 0x00, 0xBE, 0x7E,
0x04, 0x32, 0xCB, 0x8C, 0xD2}
#ROM 0x2140 = {0x87, 0x6F, 0x8B, 0x28, 0x8A, 0x63, 0x8B, 0x7C, 0x84, 0x82, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
#ROM 0x2150 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
#ROM 0x2160 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
#ROM 0x2170 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
#ROM 0x2180 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
#ROM 0x2190 = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0A, 0x00, 0x33, 0x7B}
#ROM 0x21A0 = {0x08, 0x88, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
#ROM 0x21B0 = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
#ROM 0x21C0 = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
#ROM 0x21D0 = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
#ROM 0x21E0 = {0xFF, 0x43, 0x4F, 0x32, 0x2E, 0x33, 0x30, 0x33, 0x2E, 0x31, 0x30,
0x2D, 0x30, 0x30, 0x30, 0x32}
#ROM 0x21F0 = {0x23, 0x30, 0x30, 0x32, 0x38, 0x2D, 0x31, 0x39, 0x2F, 0x30, 0x37,
0x2F, 0x32, 0x30, 0x30, 0x32}


 
 Re: Инициализация EEPROM
Автор: moris ()
Дата:   12/03/2004 15:33

для АСМ PIC18FXXX

org 0xf00000 ; Начальный адрес EEPROM

de '0','0' ; Время Ускоренного Заряда
de '0','0'
de '0','0' ; Время Выравнивающего Заряда
de 0x44,0x33


для PICC18 и Вписываете что нужно

__EEPROM_DATA(0x31,0x32,0x33,0x34,0xCD,0xCD,0xCD,0xCD); // [0...7]
__EEPROM_DATA(0xCD,0xCD,0xCD,0xCD,0xCD,0xCD,0x05,0x0C); // [8.. F]

__EEPROM_DATA(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); // [10...17]
__EEPROM_DATA(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); // [18...1F]

__EEPROM_DATA(0x55,0x00,0x94,0x01,0x40,0x02,0x67,0x02); // [20...27
__EEPROM_DATA(0xC3,0x01,0xD0,0x01,0x40,0x02,0x74,0x00); // [28...2F]

__EEPROM_DATA(0x40,0x02,0x42,0x00,0x64,0x00,0xA0,0x07); // [30...37]
__EEPROM_DATA(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00); // [38...3F]




 
 вот твой ответ, поиском надо пользоваться
Автор: patton ()
Дата:   12/03/2004 15:34

http://www.microchip.ru/phorum/read.php?f=2&i=39686&t=39646