Сейчас вот переношу один старый асмовый проект для меги8 на си.
И вспомнил, что была у меня проблема с шиной I2C - если в процессе обмена данными возникала ошибка, то я сразу после посылки STOP начинал отправлять START для повторной передачи. То есть совсем без паузы.
Что приводило к невыполнению посылки START`а, так как, видимо, в это время всё ещё выполнялся STOP...
Тогда я просто поставил паузу в несколько миллисекунд после каждого стопа (или перед каждым стартом).
Есть ли другой способ, "более красивый"?
И почему атмеловцы не стали устанавливать флаг TWINT после завершения STOP?