[Из песочницы] Реализация мьютекса вне ОС на примере микроконтроллера AVR и шины TWI

Решил однажды для себя я соорудить погодную станцию. Датчики там разные, в том числе на шине I2C. И как годится, обычно вначале, сделал все на флагах ожидания. Но путь настоящего джедая иной, и было решено все повесить на прерывания. Вот тут и начался геморрой. Проблема, с которой я столкнулся это обработка нескольких подряд идущих запросов. Например датчик давления BMP085 для дальнейшей работы с ним, требует вытянуть из его EEPROM 11 калибровочных констант:

О том как я пришел к решению и последовательность хода мыслей изложены ниже.
Осторожно! Много текста, кода и картинок

Глеб Петров

Доктор технических наук, член научно- аналитического совета Украинского ядерного общества.

Добавить комментарий