Правильная работа I2C. Нужен ли ПБ от зависания ?

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение KulibinOrsk »

Хочу спросить у знающих - возможно ли и нужно ли сделать ПБ от зависания при работе по I2C ?
Пример реализации: https://catethysis.ru/i2c-restart-error-handling/ (ну или один из примеров) и возможно для FLprog не помешает такой же блок создать ?
По I2C можно работать передавая данные в одну сторону (например дисплей) или в обе стороны (любой датчик. часы и др)
Вопросы:
- что будет если отсоединить I2C при работе с дисплеем ? (зависнет ли программа, восстановится ли при подключении ? )
- и аналогично что будет если отсоединить при работе с датчиком (тут наверняка зависнет)
слово отсоединить можно интерпретировать как поступление какой то помехи ...что в данном случае равнозначно.

Отправлено спустя 24 минуты 54 секунды:
Интересует конечно "действия" со стороны программного кода - что происходит в коде (то что в железе зависон это и так понятно, а вот почему код блуждать начинает - это интересно и это надо устранять)
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение Олег »

То что описано в этой статье спасет только от случайной ошибк, а при отключении дисплея или датчика практически ничего не изменится. Цикл прокручивается 200 раз, потом рестарт и опять опять в цикл while. Если I2C подключено в начале программы, то вообще будет сплошной рестарт с опросом шины. Ну разве что после подсоединения подключится автоматически.
Есть вариант после зависания и рестарта отключать опрос шины на какое-то время, чтобы скетч делал свою работу до следующего опроса, но это уже зависит от ТЗ скетча, где-то такое допустимо, где-то нет. ИМХО.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение ingener »

Есть похожий вопрос, чтобы новую тему не открывать - по защите от зависания самой Ардуино.
Точнее, по защите от возможных последствий.
Есть проект, где она управляет автоматизированным сварочным аппаратом, и возможно зависание именно в момент зажигания дуги.
При этом выход управления дугой остается активен, а движение тележки не начинается, и в итоге прожигается большая дыра.
Можно ли как-то обнаружить зависание внешними устройствами и быстро сделать авто-ресет?
Иными словами, есть ли какие-либо признаки нормальной и "зависшей" работы контроллера (например, сигналы на Rx/Tx пинах?)
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение Олег »

[ref]ingener[/ref], По этому поводу несколько тем на форуме, ищите по словосочетаниям Сторожевой таймер или watch dog. Может быть вочдог.
KulibinOrsk
Лейтенант
Сообщения: 516
Зарегистрирован: 25 фев 2018, 08:48
Откуда: Оренбург
Имя: Александр

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение KulibinOrsk »

Кто то поможет сделать ПБ из кода приведенного по ссылке ?
Пусть хотя бы будет ПБ для I2C для: спасания от случайной ошибки и помех - это уже большое дело будет для всех рабочих приборов.
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Правильная работа I2C. Нужен ли ПБ от зависания ?

Сообщение bayeck »

[ref]ingener[/ref], viewtopic.php?f=42&t=351&p=84620#p84620 вам туда.
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя