Цитата(Labinskiy Nikolay @ Jul 22 2006, 13:43)

Цитата(xemul @ Jul 22 2006, 12:24)

Проблема в 80 мкс задержке. В даташитах на ванварь черным по английски сказано:
Presence Detect Sample Time tMSP min=60us, max=75us
со сноской: Note 1: System requirement.
В функции delay_us не учитываются задержки на вызов и возврат из функции. Это делает ее совершенно бессмысленной для задержек менее 10 мкс и относительно разумной для задержек менее 30-40 мкс при F_CPU 1000000UL.
Как тогда корректно делать задержки?
Извините, не посмотрел, что для датчиков температуры ворота по Presence Pulse гораздо шире, чем для iButton. Тем не менее, если программу написать под стандартные тайминги для iButton, она будет работать и с остальными ванварными девайсами.
Посмотрите
AN126.pdfЯ делал задержки более 70 мкс кратными этим самым 70 мкс (т.е., н-р, сброс = 7*70) и отрабатывал их по 70-мкс таймерному прерыванию. Мелкие задержки при Fclk=1MHz приходилось делать nop'ами, goto $+1 (синтаксис PIC'ов) и циклами ожидания.