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

Запись в EEPROM с протоколом

кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал

 

lcd_gotoxy(0, 1);

strchis("А");

 

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

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

 

Если для корректной записи в EEPROM приходится выключать прерывания, значит программа на 100% написана неправильно.

Поделиться сообщением


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

...
[CENSORED]

нужно все го лишь скопировать свои данные во временную переменную

которая для записи в EEEPROM

Изменено пользователем IgorKossak
Бездумное цитирование, оскорбление. Последнее устное предупреждение

Поделиться сообщением


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

Если для корректной записи в EEPROM приходится выключать прерывания, значит программа на 100% написана неправильно.

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

Поделиться сообщением


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

[CENSORED]

нужно все го лишь скопировать свои данные во временную переменную

которая для записи в EEEPROM

Уважаtмый модератор, слово ",баран" не имеет национальности...

я как бы понимаю Вашу попытку соблюсти политкорректность...

но ИМХО, это не тот случай...

 

Поделиться сообщением


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

....

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

IMHO читать неприятно и тяжело.

Изменено пользователем IgorKossak
+1

Поделиться сообщением


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

кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал

 

lcd_gotoxy(0, 1);

strchis("А");

 

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

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

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

А вы явно впихнули прожорливые команды в прерывание.

 

И это все я описал для одного прерывания, а если у вас в это время прерывание с более высоким приоритетом будет "мурку тянуть"

(Если кто не знает что такое мурку тянуть)

то и получите "не работоспособную" прогу .

Поделиться сообщением


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

Уважаtмый модератор, слово ",баран" не имеет национальности...

я как бы понимаю Вашу попытку соблюсти политкорректность...

но ИМХО, это не тот случай...

1. Сюда ходят люди, а не "бараны".

2. Публичное обсуждение действий модератора.

В совокупности - статус на неделю read only.

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

 

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

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

 

В любое время в любов приреванни может быть команда записи в еепром

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

 

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

Поделиться сообщением


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

не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.

Поделиться сообщением


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

не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.

 

а если в ЕЕПРОМ нужно сохранить значение 0xFF ?

Поделиться сообщением


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

не получается у нас вернутся к основной теме.Значит все делают так, Читают байт памяти и если он не 0xff запись достоверна.

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

протокол для UART там байт начала байт команды кол байт блок данных контрольная сумма.Раз протокол для UART то там много дополнительного.Вот я и спрашивал кто как делает в этих случаях.

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...