dimok0409

Eeprom В Proteuse

16 сообщений в этой теме

dimok0409    0

Доброго всем времени суток .

Столкнулся с проблемой при симулировании в Proteuse не читаются данные из памяти EEPROM.

Пишу программу много канального ШИМ для Atmega8 в AVR_Studio 5 на С.

В стимуляторе AVR_Studio переменным присваиваются значения записанные EEPROM.

Подскажите как заставить Proteus работать с EEPROM.

Заранее всем СПАСИБО!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TDSS    89

Записать эти значения в EEPROM при инициализации программы. Протеус сохранит эти записи у себя в проекте. Потом код инициализации значений в EEPROM можно удалить, будут считываться значения сохраненные в проекте (может есть и другой метод, даже более правильный, но я делал так)

Изменено пользователем TDSS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
NebsteR    743

В PIC'ах в протеусе еепром нормально работает. Причем работает как и должен - состояние сохраняется в конфигах проекта и после симуляции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimok0409    0

Записать эти значения в EEPROM при инициализации программы. Протеус сохранит эти записи у себя в проекте. Потом код инициализации значений в EEPROM можно удалить, будут считываться значения сохраненные в проекте (может есть и другой метод, даже более правильный, но я делал так)

Спасибо за подсказку так заработала.

Может кто-то знает как Proteusu подсунуть файл с расширением .eep в котором компилятор пишет все данные по EEMROM

В PIC'ах в протеусе еепром нормально работает. Причем работает как и должен - состояние сохраняется в конфигах проекта и после симуляции.

Спасибо за ответ.Я только начал работать с микроконтроллерами пока бы с AVR разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

donec    133
Может кто-то знает как Proteusu подсунуть файл с расширением .eep в котором компилятор пишет все данные по EEMROM

С помощью утилиты hex2bin.exe file.eep file.bin перекодировать файл file.eep в file.bin. Затем подключить файл file.bin к МК.

post-135787-0-89203600-1360081482_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
shads    5
Подскажите как заставить Proteus работать с EEPROM.

В начале программы инклудиш файл

#include <avr/eeprom.h>

Пример записи байта 0xff в переменную MainVar размещенную в EEPROM

char MainVar EEMEM; //переменная в EEPROM
eeprom_write_byte (&MainVar, 0xff); //запись в MainVar

Читаем переменную MainVar размещенную в EEPROM и помещаем в temp

char temp = eeprom_read_byte (&MainVar);//читаем

Есть еще подобные команды для работы с 16 разрядными данными

eeprom_read_word()
eeprom_write_word()

Изменено пользователем shads

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TDSS    89

Для AVR Studio делал так:

//создаем переменную типа unsigned int 8bit
uint8_t var = 5;

//задаем переменную хранящую адрес в EEPROM
unsigned int var_ADR = 10;

//запись переменной var по адресу var_ADR
eeprom_busy_wait();
eeprom_update_byte((uint8_t*)var_ADR, var);

//чтение из адреса EEPROM в переменную var
eeprom_busy_wait();
var = eeprom_read_byte((uint8_t*)var_ADR);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimok0409    0
Может кто-то знает как Proteusu подсунуть файл с расширением .eep в котором компилятор пишет все данные по EEMROM

С помощью утилиты hex2bin.exe file.eep file.bin перекодировать файл file.eep в file.bin. Затем подключить файл file.bin к МК.

Спасибо за ответ если будет нетрудно киньте ссылку где можно скачать hex2bin.exe file.eep file.bin

Подскажите как заставить Proteus работать с EEPROM.
В начале программы инклудиш файл
 #include  

Пример записи байта 0xff в переменную MainVar размещенную в EEPROM

 char MainVar EEMEM; //переменная в EEPROM eeprom_write_byte (&MainVar, 0xff); //запись в MainVar 

Читаем переменную MainVar размещенную в EEPROM и помещаем в temp

 char temp = eeprom_read_byte (&MainVar);//читаем 

Есть еще подобные команды для работы с 16 разрядными данными

 eeprom_read_word() eeprom_write_word() 

Спасибо за подсказку.Кто знает зачем нужна функция eeprom_busy_wait; и eeprom_is_ready

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
donec    133

В посту 5 Я уже ее написал, выделенное черным это и есть порядок набора в командной строке, только вместо file напишешь свое имя файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimok0409    0

В посту 5 Я уже ее написал, выделенное черным это и есть порядок набора в командной строке, только вместо file напишешь свое имя файла.

Не могу не как найти описание работы с программой если можно скиньте ссылку пожалуйста. :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
donec    133

Пост 9 ссылка, там и некоторое описание работы с прогой, то, что приведено в посту 5 - достаточно.

Изменено пользователем donec

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimok0409    0

Пост 9 ссылка, там и некоторое описание работы с прогой, то, что приведено в посту 5 - достаточно.

Я только недавно зарегистрировался на это сайте для мне не понятно что обозначает Пост 9 и где это искать???? :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimok0409    0

Все разобрался сначала просто не догнал что за пост.Все вроде заработало спасибо за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
balistik    0

У меня тоже в протеусе фигово работает еепром. Часть переменных читается, часть нет. Не пишутся вообще.

unsigned char eep1 EEMEM; //объявил

eeprom_write_byte(&eep1, 0);//записал

regim = eeprom_read_byte(&eep1);//считал

Ну и при чтении и записи отключаю прерывания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас