Вот разбираюсь с шиной 1-Wire под WinAVR. Запарился уже шить-перешивать МК в процессе отладки .
Решил поставить великий и могучий протеус. Для тестирования взял sample проект самого протеуса, выбрал для того МК что там стоял прошивку 1-Wire на CVAVR - она гарантированно работает (проверял на железяке тестируемой).
Для отладки собственно кода WinAVR добавил в проект еще один МК с 1-Wire датчиком...
И начались чудеса. Проц с прошивкой CVAVR работает нормально (16 МГц на обеих выставленно), а вот с WinAVR както невероятно долго - тестовое передергивание ноги без задержек заняло 10мс. Я уж и не знаю на что думать - то ли протеус симулирует HEXы от разных компилляторов по-разному, то ли у меня чтото в коде (но что там может быть, ногой просто передернуть). Может секрет какой есть когда два МК в проекте?
Осциоллограмма в приложении (на нижнем графике - видно с какой скоростью идет обмен по 1-wire на нормальном МК, а второй сверху - это передергивание ноги без задержек на WinAVR).
Проект протеуса там же.
Добавлено спустя 14 минут 41 секунду:
Удаление вспомогательного МК дела не решило
Добавлено спустя 5 минут 55 секунд:
На реальном МК все остальное кроме 1Wire нормально работает.