Да чтож такое. Пытаюсь использовать Input Capture на меге16а, а оно беспрерывно генерит Input Capture прерывания, хотя не должно. Уже вроде все что можно попробовал. На ICP1 включил внутреннюю подтяжку, оставлял пин без провода, снаружи к плюсу подтягивал. Noise canceler включил, выключил на всякий пожарный компаратор и даже AIN1 к плюсу подтянул, менял фронт срабатывания. Ну никак. 
В гугле нашел несколько случаев такой проблемы, но без решений. Бывало у кого-нибудь так?
UPD: Выяснил, что начинает спамить прерыванием после первого переполнения счетчика. Что это значит пока не понял.
В ходе выяснения обнаружил баг студии. В режиме WGM = 12 в студии таймер не считает, если OCR1A = 0, т.к. срабатывает флаг прерывания по сравнению на первом же счете. Сразу показалось, что это не правильно, так оно и вышло. В МК в этом режиме таймер как минимум не обращает внимания на флаг по сравнению. Непонятно пока до куда считает. По даташиту вроде должен обнуляться при Input Capture Flag.
UPD1: Так... не может же оно обнуляться на первом же такте после переполнения из-за того, что ICR1 = 0? И ставить флаг ICF1. Это же нелогично?  

До первого переполнения вроде никак на уровень на ноге ICP1 не реагирует.
Код инициализации и прерывания:
OUTI - макрос, пишет константу в I/O через регистр R17 (OSRG).
- Код: Выделить всё • Развернуть
-       OUTI   DDRB,   1<<PB0
 
 OUTI   ACSR,   1<<ACD
 
 OUTI   PORTD,   1<<PD6
 
 OUTI   TCCR1B,   1<<WGM12|1<<WGM13|1<<CS10|1<<CS12
 IN      OSRG,   TIMSK
 ORI      OSRG,   1<<TICIE1
 OUT      TIMSK,   OSRG
 
- Код: Выделить всё • Развернуть
- TIMER1_CAPT:      CLI
 PUSH   OSRG
 
 SBI      PORTB,   0            ; моргаем
 SBIC   PINB,   0
 CBI      PORTB,   0
 
 OUTI   UDR,   111
 
 POP      OSRG
 SEI
 RETI