Цитата(_Pasha @ Feb 1 2011, 18:37)

А по Вашему предложению - автор если собрался его реализовать, все-таки интересно, во сколько циклов оно встанет.
Ресурсоемкость кода сократиться в 18 раз только за счет того что прерываний стало в 18 раз меньше, плюс ресурсоемкость самих обработчиков сократится еще в 10 раз за счет того что обрабатываются не все 14, а только 1 канал. Итого на 2 порядка меньше от посчитанных Вами 190 тактов )
На асм писать не предлагаю - здесь нет в этом нужды.
Цитата
Там на регистровые переменные тоже не особо разбежишься - надо использовать ldd/std
ldd/std определенно пользовать не надо.
Массив 14-ти каналов разместить в регистрах, благо в AVR их аж 16 лишних.

обработчик прерывания банально пишем 5 команд и копипастим 14 раз:
mov - 1 такт
lpm - 3
cp - 1
brlo вместе с cbi/sbi - 2 такта.
Итого на асм 1 + (1 + 3 + 1 + 2) * 14 = 99 тактов решением в лоб. ;>