|
|
  |
Запись в EEPROM с протоколом |
|
|
|
May 4 2011, 16:01
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Integral @ May 4 2011, 19:49)  кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал
lcd_gotoxy(0, 1); strchis("А");
ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц??? Сначала объясните, зачем может понадобиться писать таким образом? Конечно, можно писать программы абы как и "обезглючивать" их выключением оптимизации и прерываний, вместо поиска реальной проблемы, но профессиональным такой подход не назовешь. Если для корректной записи в EEPROM приходится выключать прерывания, значит программа на 100% написана неправильно.
|
|
|
|
|
May 4 2011, 16:08
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Integral @ May 4 2011, 19:49)  ... [CENSORED] нужно все го лишь скопировать свои данные во временную переменную которая для записи в EEEPROM
Сообщение отредактировал IgorKossak - May 4 2011, 17:28
Причина редактирования: Бездумное цитирование, оскорбление. Последнее устное предупреждение
|
|
|
|
|
May 4 2011, 18:01
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(singlskv @ May 4 2011, 20:08)  [CENSORED] нужно все го лишь скопировать свои данные во временную переменную которая для записи в EEEPROM Уважаtмый модератор, слово ",баран" не имеет национальности... я как бы понимаю Вашу попытку соблюсти политкорректность... но ИМХО, это не тот случай...
|
|
|
|
|
May 4 2011, 18:46
|

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

|
Цитата(Integral @ May 4 2011, 19:49)  ....  Уважаемый Integral, этот форум на русском языке. Будьте добры соблюдать нормы языка на форуме. IMHO читать неприятно и тяжело.
Сообщение отредактировал IgorKossak - May 5 2011, 07:16
Причина редактирования: +1
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
May 4 2011, 19:42
|

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

|
Цитата(Integral @ May 4 2011, 18:49)  кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал
lcd_gotoxy(0, 1); strchis("А");
ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц??? вот, значит при работе с дисплеем тоже прерівания отклювать? ато при ежедневном использовании раз в 3-4 месяца клиент находит как заглючить устроство? 'aaarrr' в посте №16 все объяснил, я позволю добавить, что процессор должен гарантированно успеть обработать код прерывания, до наступления следующего прерывания. (нп. обработка прерывания INT0 должна быть законченна до наступления следующего INT0) Из этого следует, что или код прерывания должен быть очень коротким или проц. очень быстрым. А вы явно впихнули прожорливые команды в прерывание. И это все я описал для одного прерывания, а если у вас в это время прерывание с более высоким приоритетом будет "мурку тянуть" (Если кто не знает что такое мурку тянуть)то и получите "не работоспособную" прогу .
|
|
|
|
|
May 5 2011, 08:02
|
Участник

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

|
Я начал тему о другом запись с протоколом в память не обязательно во внутреннию ЕЕПРОМ .это пример Я так записываю в любую Энергонезависимую память.Мы ушли в другую сторону.Записывать в прерывании или нет зависит от самой программы.Если в основном цикле программы требуется одно прерывание которое не влияет на работу программы в данный момент,почему я не могу его выключить перед записью в ЕЕПРОМ или вы включаете все прерывания которые потребуются в программе сразу после сброса.
|
|
|
|
|
May 5 2011, 09:31
|

Профессионал
    
Группа: Участник
Сообщений: 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)  В любое время в любов приреванни может быть команда записи в еепром Если у вас запись в еепром выполняется в "приреванни", то это архитектурная ошибка. Если же при этом программа висит там ожидая окончания записи, то за такое нужно отрывать руки. В таких случаях делают кольцевой буфер, программа записывает туда информацию, необходимую для записи, а подпрограмма обработки прерываний в фоновом режиме, не торопясь, их записывает.
|
|
|
|
|
May 5 2011, 09:54
|
Участник

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

|
не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.
|
|
|
|
|
May 5 2011, 10:06
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425

|
Цитата(Oleg_DI @ May 5 2011, 12:54)  не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна. а если в ЕЕПРОМ нужно сохранить значение 0xFF ?
|
|
|
|
|
May 5 2011, 10:53
|
Участник

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

|
В любом моём приборе требуется сохранение настроек пользователя, имеем блок данных которые требуется сохранить.В одних приборах используется внутренняя ЕЕПРОМ в других внешняя FROM.Но каждое сохранение записывается с протоколом.Сейчас я беру за основу протокол для UART там байт начала байт команды кол байт блок данных контрольная сумма.Раз протокол для UART то там много дополнительного.Вот я и спрашивал кто как делает в этих случаях.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|