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