Помогите разобраться почему неполучается у меня записать информацию в память контроллера. Часть проги вырезал т.к. надо понять тока как записать 01h в 00h ячейку
Читать совершенно невозможно. По существу. Из чего следует, что запись не порисходит? По коду. Любая программа в МК должна быть зациклена. Директива ассемблера END не является остановом. Она лишь означает завершение листинга трансляции. Эта директива - указание для компилятора.
я в mplab открыл окно с ячейками памяти и наблюдаю что там происходит, после выполнения кода в шаовом режиме информация в ячейках неменяется. Форум убирает пробелы поэтому прикрепил файлик с кодом. Невырезал в начале текста отключение АЦП т.к. его тут нет. Просто игнорируйте эти несколько строчек
я в mplab открыл окно с ячейками памяти и наблюдаю что там происходит, после выполнения кода в шаовом режиме информация в ячейках неменяется.
В пошаговом режиме? Стало быть Вы используете СИМУЛЯТОР, поскольку дебаггера на кристалле у этого МК нет, а хедер с отладчиком у Вас скорее всего отсутствует. Однако MPLAB SIM не поддерживает симуляцию EEPROM данных. Даже при наличии отладчика результат записи в EEPROM можно проконтролировать, только ПРИНУДИТЕЛЬНО прочитав ее соответствующей кнопкой на панели управления дебагом в МПЛАБе.
Последний раз редактировалось КРАМ Пн мар 23, 2015 07:29:22, всего редактировалось 1 раз.
Однако MPLAB SIM не поддерживает симуляцию EEPROM данных....
Вы не правы. Поддерживает (по крайней мере, MPLAB v8.92). Только надо помнить о том, что данные изменятся в окне EEPROM (как и сказано в pdf) через 2ms. Сколько "шагов" в программе для этого необходимо сделать при заданной частоте "Processor Frequency" в окне "Simulator Setting" - посчитать не сложно.
Т.е. время записи в ячейку EEPROM, во время которого надо запрещать всяческое с ней общение, а по окончании, это общение разрешать. Т.е. в программе надо либо организовывать циклическое чтение флага прерывания EEPROM, либо разрешать это самое прерывание, и уже "разблокировку" производить в нём. Следовательно, если программа организована правильно, всегда можно найти точку, где данные в EEPROM обновятся.
Вот подредактировал програмку её цель записать в ячейку EEPROM 01h информацию 55h и потом скопировать информацию из ячейки EEPROM 01h в ОЗУ в ячейку 21h все наглядно сделал. Процедуру записи взял из даташита, все равно не работает запись!!! Если даже если предположить что PLAB SIM неотображает содержимое EEPROM то на этот случай сделал копирование ячейки в озу. Прикрепил даташит от PIC12F629 Конфигурация: Калибровка сброса по снижению питания & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF_&_BODEN_OFF
Программистов контроллеров тут много, напишите код на 12f629 который способен записать в память что ни буть и работал в MP LAB 8.92. Мне большего и не надо ничего.
Почти в каждой ветке форума говорят что надо вначале читать документацию а потом спрашивать. Нет, постоянно кто-то хочет доказать что напишет программу на ASM не читая pdf... Изучайте. Ваш текст программы. Запись числа 55h в EEPROM по адресу 01h.
Заголовок сообщения: Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 16:54:59
Модератор
Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4594 Откуда: Планета Земля
Рейтинг сообщения:1 Медали: 1
Цитата:
напишите код на 12f629 который способен записать в память что ни буть и работал
Вы его уже написали и выложили сюда. Только вот люди, несколькими постами выше Вашего, видимо напрасно распинались, объясняя почему Вы не видите записи данных.
Всем спасибо! Разобрался. Все оказалось все же во времени записи, ждал недостаточно долго и все изза того что в SIM стояла частота контроллера 20Мгц, а мне надо 4 Мгц. Как только изменил этот парамерт программа заработала.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения