реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Запись в EEPROM с протоколом
aaarrr
сообщение May 4 2011, 16:01
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Integral @ May 4 2011, 19:49) *
кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал

lcd_gotoxy(0, 1);
strchis("А");

ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц???

Сначала объясните, зачем может понадобиться писать таким образом? Конечно, можно писать программы абы как и "обезглючивать" их выключением оптимизации и прерываний, вместо поиска реальной проблемы, но профессиональным такой подход не назовешь.

Если для корректной записи в EEPROM приходится выключать прерывания, значит программа на 100% написана неправильно.
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 4 2011, 16:08
Сообщение #17


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Integral @ May 4 2011, 19:49) *
...
[CENSORED]
нужно все го лишь скопировать свои данные во временную переменную
которая для записи в EEEPROM

Сообщение отредактировал IgorKossak - May 4 2011, 17:28
Причина редактирования: Бездумное цитирование, оскорбление. Последнее устное предупреждение
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 4 2011, 17:48
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(aaarrr @ May 4 2011, 20:01) *
Если для корректной записи в EEPROM приходится выключать прерывания, значит программа на 100% написана неправильно.

Абсолютно согласен!


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 4 2011, 18:01
Сообщение #19


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(singlskv @ May 4 2011, 20:08) *
[CENSORED]
нужно все го лишь скопировать свои данные во временную переменную
которая для записи в EEEPROM

Уважаtмый модератор, слово ",баран" не имеет национальности...
я как бы понимаю Вашу попытку соблюсти политкорректность...
но ИМХО, это не тот случай...
Go to the top of the page
 
+Quote Post
mdmitry
сообщение May 4 2011, 18:46
Сообщение #20


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Integral @ May 4 2011, 19:49) *
....

bb-offtopic.gif Уважаемый Integral, этот форум на русском языке. Будьте добры соблюдать нормы языка на форуме.
IMHO читать неприятно и тяжело.

Сообщение отредактировал IgorKossak - May 5 2011, 07:16
Причина редактирования: +1


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Marian
сообщение May 4 2011, 19:42
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 148
Регистрация: 23-02-07
Пользователь №: 25 618



Цитата(Integral @ May 4 2011, 18:49) *
кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал

lcd_gotoxy(0, 1);
strchis("А");

ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц??? вот, значит при работе с дисплеем тоже прерівания отклювать? ато при ежедневном использовании раз в 3-4 месяца клиент находит как заглючить устроство?

'aaarrr' в посте №16 все объяснил, я позволю добавить, что процессор должен гарантированно успеть обработать код прерывания, до наступления следующего прерывания. (нп. обработка прерывания INT0 должна быть законченна до наступления следующего INT0)
Из этого следует, что или код прерывания должен быть очень коротким или проц. очень быстрым.
А вы явно впихнули прожорливые команды в прерывание.

И это все я описал для одного прерывания, а если у вас в это время прерывание с более высоким приоритетом будет "мурку тянуть"
(Если кто не знает что такое мурку тянуть)
то и получите "не работоспособную" прогу .
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение May 5 2011, 07:19
Сообщение #22


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(singlskv @ May 4 2011, 21:01) *
Уважаtмый модератор, слово ",баран" не имеет национальности...
я как бы понимаю Вашу попытку соблюсти политкорректность...
но ИМХО, это не тот случай...

1. Сюда ходят люди, а не "бараны".
2. Публичное обсуждение действий модератора.
В совокупности - статус на неделю read only.
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение May 5 2011, 08:02
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



Я начал тему о другом запись с протоколом в память не обязательно во внутреннию ЕЕПРОМ .это пример Я так записываю в любую Энергонезависимую память.Мы ушли в другую сторону.Записывать в прерывании или нет зависит от самой программы.Если в основном цикле программы требуется одно прерывание которое не влияет на работу программы в данный момент,почему я не могу его выключить перед записью в ЕЕПРОМ или вы включаете все прерывания которые потребуются в программе сразу после сброса.
Go to the top of the page
 
+Quote Post
777777
сообщение May 5 2011, 09:31
Сообщение #24


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Integral @ May 4 2011, 04:13) *
елементарно ватсон... запись в еепром идет долго, т.е. нужна задержка в программе при записи что бы записалось (цыклом вайл ждем пока не закончиться запись, и только тогда работаем дальше)

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

Цитата(Integral @ May 4 2011, 04:13) *
если в ето (пока цыкв вайл ждет пока закончиться запись) время произойдет абсолютно любое прерывание, то запись может (а может и нет) заглючит и результат записи может быть любим

Если программу написать столь же грамотно, как этот текст, то непременно заглючит. Но в AVR никаких предпосылок к этому нет.

Цитата(Integral @ May 4 2011, 19:49) *
В любое время в любов приреванни может быть команда записи в еепром

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

В таких случаях делают кольцевой буфер, программа записывает туда информацию, необходимую для записи, а подпрограмма обработки прерываний в фоновом режиме, не торопясь, их записывает.
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение May 5 2011, 09:54
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.
Go to the top of the page
 
+Quote Post
swisst
сообщение May 5 2011, 10:06
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(Oleg_DI @ May 5 2011, 12:54) *
не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.


а если в ЕЕПРОМ нужно сохранить значение 0xFF ?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 5 2011, 10:08
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Oleg_DI @ May 5 2011, 13:54) *
не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.

А если он 0xAA или 0x55 а Вы писали 0x02 / Проще вычесть прочитаное из записываемого и если не ноль то запись не верна


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
GDI
сообщение May 5 2011, 10:18
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А Вы опишите задачу, а то так можно гадать бесконечно. Зачем Вам вообще нужен такой контроль содержимого ЕЕПРОМ?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение May 5 2011, 10:53
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



В любом моём приборе требуется сохранение настроек пользователя, имеем блок данных которые требуется сохранить.В одних приборах используется внутренняя ЕЕПРОМ в других внешняя FROM.Но каждое сохранение записывается с протоколом.Сейчас я беру за основу
протокол для UART там байт начала байт команды кол байт блок данных контрольная сумма.Раз протокол для UART то там много дополнительного.Вот я и спрашивал кто как делает в этих случаях.
Go to the top of the page
 
+Quote Post
GDI
сообщение May 5 2011, 10:59
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Настройки записываются в одно и то же место или Вы храните некую историю настроек и потому данные могут располагаться по разным адресам ЕЕПРОМ?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016