Да, я это тоже всё уже заметил.
А по поводу задержки - просто для Timer2 у ATmega64, как оказалось, другие предделители - вот оно и получилось в 8 раз дольше.
В любом случае, я немножко посидел со всем этим, и что-то вроде бы получается.
На данный момент считывается температура с двух датчиков и выводится вместе со временем. Дело осталось за малым - написать обработку порогов отключения вентиляторов, чтение этих порогов из EEPROM, и, возможно, интерфейс для настройки значения этих порогов.
Думаю, это получится и для ATmega32 реализовать, используя те же выходы EXT. Т.е. вариант спектроанализатора с LM7001 будет без этой фичи, остальные - уже с ней.
По поводу ошибочных значений - 1-wire протокол поддерживает контрольную сумму (ею является последний из 8 принимаемых байт). Пока с CRC ещё не имел дела, но стоит попробовать, чтобы при ошибке в контрольной сумме просто не обновлять переменную с температурой.
По поводу ШИМ - тоже, в целом не проблема. По аналогии с яркостью. Но оставим это на будущее.
Код того, что есть на данный момент:
https://code.google.com/p/ampcontrol/so ... /?name=m64
Проект в Proteus во вложении.
P.S. Кстати, то, чем Вы открываете исходники, портит файлы - добавляет в конец каждой строки перенос в стиле Windows. Когда пытаюсь смотреть git diff в архиве - кошмар-кошмар.
P.P.S. Если всё это реализовать.. для нового проекта (вариант на ATmega32 с кадровым буфером) стоит даже написать новую статью, так как старая не учитывает многие новые возможности по сравнению с изначальным вариантом.