Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/43: Рейтинг темы: голосов - 43, средняя оценка - 4.77
ssm7

Запись данных в память программ PIC18LF46J50

16.03.2013, 20:29. Показов 8673. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Такая проблема. Необходимо сохранять данные в энергонезависимую память перед выключением контроллера. Для этого пишуданные в память программ в адресс 0х002000 перед каждым циклом записи память (Falsh контроллера) стирается. Только в 2 ячейки все что попало пишется кроме того что надо. Функции записи стирания чтения написал в соответствии с рекомендациями datasheet. Стирание работает.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#define numCh_write
asm MOVLW 0x00; \
asm MOVWF TBLPTRU; \
asm MOVLW 0x20;   \
asm MOVWF TBLPTRH; \
asm MOVLW 0x00;  \
asm MOVWF TBLPTRL; \
asm MOVLW _datFtosh; \
asm MOVWF TABLAT;  \
asm TBLWT*+;   \
asm MOVLW _datFtosh;  \
asm MOVWF TABLAT; \
asm TBLWT*;  \
asm BSF EECON1, WPROG;  \
asm BSF EECON1, WREN;  \
asm BCF INTCON, GIE; \
asm MOVLW 0x55;    \
asm MOVWF EECON2;  \
asm MOVLW 0xAA;    \
asm MOVWF EECON2;   \
asm BSF EECON1, WR;  \
asm BSF INTCON, GIE; \
asm BCF EECON1, WPROG; \
asm BCF EECON1, WREN;
Подскажите где грабли
Мжет кто-то уже решал этот вопрос буду очень благодарен за исходники
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2013, 20:29
Ответы с готовыми решениями:

Запись в память программ.
Требуется записать несколько байт в память программ (с чтением разобрался, работает). Для начала просто решил стереть что-нить в памяти...

Переписать данные из памяти программ в память данных
Здравствуйте, нужно сделать задание: Переписать данные из 10 ячеек памяти программ, начиная с адреса 30 в ячейки памяти данных, начиная...

Кодировка данных и запись их в память
в общем есть несколько классов, интерфейс (грубо говоря) мне нужно записать данные в массив байтов потом его закодировать и закинуть в...

5
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 146
20.03.2013, 11:02
если используешь C18, то просто объяви переменную как rom.

Code
1
rom unsykned char var;
Если надо, чтобы переменные начинались с адреса 0x002000

Code
1
2
3
#pragma romdata my_data=0x002000
 
rom unsykned char var;
А ещё лучше использовать EEPROM, а не программную память
0
Kimyus
20.03.2013, 17:05
Цитата Сообщение от kryzzty
А ещё лучше использовать EEPROM, а не программную память
Кажется у этого чипа нет eeprom
ssm7
29.03.2013, 15:20
Всем спасибо проблему решил все работает
Оказалось что передача значения переменной из кода на С в код на Asm нереализуема поэтому пришлось переписать весь код на С и только одну комманду оставить как вставку на Asm asm TBLWT*+;

Да у чипа нет EEPROM как и у многих других чипов современных производителей но это не беда В качестве энергонезависимой памяти используем Ftosh программ на борту контроллера Конечно есть свои грабли правда в профиль но терпимо По сравнению с EEPROM у которой циклов перезаписи милионы у Ftosh их на порядки меньше
somstomt
30.03.2013, 21:50
Тогда лучше повесить внешнюю внешнюю память, чтоб не гадить во флешку ПИКа.
Ибо подведет в самый неподходящий момент, было такое (читал не помню где) в одном из музыкальных центров Samsumg, там настройки сохранялись в проце и он примерно на пятый год дох.
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 27
31.03.2013, 01:15
Записывать можно в последний банк памяти, и тогда не должно быть повреждений основной памяти.
То-есть этот банк целиком идёт как замена еепром...
Помню какой то тест проводил над ПИК18Ф4550, через юсб записывал во флешь основную программу, и выдёргивал шнур примерно по середине.
В итоге, программа основная после перезагрузки работала нормально вплодь до того момента как происходил вызов подпрограммы который видимо не успел записаться.
Тестировал несколько раз, и программа которая записывалась в банк целиком его заполнившим, не имела дефектов, после таких издёвок в виде выдёргивании шнура...

Но в память записывается сразу 32 или 64 бита инфы(имхо).
То-есть на запись нужно отправить данные в виде большого слова... Более точную инфу ищите в пдф.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2013, 01:15
Помогаю со студенческими работами здесь

Запись данных в общую память и чтение
Добрый день, я хотел бы попросить помощи в следующем вопросе. Мне необходимо записать считанный файл(Массив чар) в общую память и считать...

Запись данных в переменную через память
Доброго времени суток! Нуждаюсь в совете/помощи людей по опытнее. Есть собранный проект,который выводит в консоль полученные данные. ...

Составление программ с использованием структуры данных «Запись»
А. Создать запись, содержащую сведения о сдаче студентами группы "ПО-21" сессии. Структура записи: индекс группы, фамилия студента, оценки...

Внешняя память программ
Скажите кто нибудь цеплял внешнюю память программ к АТ89С51/52? Расскажите как это сделать, в гугле подробностей не нашел,все как то в...

Внешняя память PIC: как нарастить внутреннюю память данных?
Я только начал разбираться с ПИКами и пока не все понимаю. Мне нужно организовать систему сбора и обработки информации с газовых датчиков....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru