Перейти к содержанию

Eeprom В Proteuse


dimok0409

Рекомендуемые сообщения

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

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

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

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

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

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

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

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

Иван Сусанин - первый полупроводник

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

> Правила форума <

...из древних времен доходят до нас слухи о колдунах и волшебниках... - кто бы мог подумать, что так может начинаться дипломная работа по радиотехнике...

...это не дым от канифоли, нет... это души умерших транзисторов....

Первый закон Ома: никому не рассказывать про Ома!

Ну вот, а ты говорил ноль...

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

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

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

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

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

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

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

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

Подскажите как заставить 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
Ссылка на комментарий
Поделиться на другие сайты

Для 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);

Иван Сусанин - первый полупроводник

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

Может кто-то знает как 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

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

ссылку где можно скачать hex2bin.exe

http://hex2bin.sourceforge.net/

Если вам будет не трудно напишите краткую инструкцию по работе с программой.

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

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

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

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

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

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

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

Изменено пользователем donec
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

  • 4 года спустя...

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

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

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...