Цитата(sonycman @ Dec 13 2008, 03:49)

сразу после посылки STOP начинал отправлять START для повторной передачи. То есть совсем без паузы.
Что приводило к невыполнению посылки START`а, так как, видимо, в это время всё ещё выполнялся STOP...
Тогда я просто поставил паузу в несколько миллисекунд после каждого стопа (или перед каждым стартом).
Есть ли другой способ, "более красивый"?
Можно тестировать флаг TWSTO в TWCR, который, согласно дш, должен сбрасываться после заветшения STOPа.
Я тоже сталкивался с подобной бякой, когда даешь START во время STOPа. Только у меня (на меге32) при этом вместо STOP+START получался Repeated START, после которого TWI откровенно глючит. Тестирование TWSTO спасает, но не полностью - в 6% случаев все равно RepS. Полностью спасает пауза после подачи стопа больше половины периода FSCL
Цитата(sonycman @ Dec 13 2008, 03:49)

И почему атмеловцы не стали устанавливать флаг TWINT после завершения STOP?
Да уж, в TWI атмеловцы постарались - создали все возможные неудобства (не только TWINT после завершения STOP)