Если у Вас трудности с прерыванием, зачем его вообще организовывать?
Можно предположить, что SIGNAL(SIG_OVERFLOW0) это прерывание от Timer0,
и когда отстреляется 28 прерываний и в это время a=0 запускаются лампочки.
После того как лампочки отстрелялись, устанавливается PORTC=1 и тут же PORTC=0,
все происходит очень быстро, возможно, маловероятно, но возможно, второй борд не успевает
словить этот импульс. У Вас в программе есть цикл for(i=0;i<10000;i++) , который заблокирован
в тексте программы. Уберите две черты "//" и сделайте хотя бы
for(i=0;i<100;i++) ; Этого должно с гарантией хватить на ширину импульса.
Если после этого не сработает, можно отказаться от прерываний.
Процессор все равно простаивает, во время ожидания импульса на PORTD0,
вот пусть опрашивает PIND и обрабатывает импульс.
Можно вообще отказаться от прерываний. Если Вы скажете, что это возможно,
приведу здесь текст модуля без прерываний.
PS: пока писал текст опередили, но менять не буду, кашу маслом не испортить
Сообщение отредактировал rvk - Jan 31 2009, 15:44