rkierzek napisał(a):
ICP1 jest OK ale tylko w obrębie 16 bitów tego licznika, ale i wtedy trzeba natychmiast zatrzymać przerwania.
Niczego nie musisz zatrzymywać. W momencie wejścia do procedury obsługi przerwania mikrokontroler sam sprzętowo wyłącza wszystkie inne przerwania do momentu jej zakończenia. Jestem w tej chwili w pracy i nie mam czasu na szersze wyjaśnienia i argumentację (może wieczorem), ale rozwiązanie z ICP1 miałoby szansę zadziałać prawidłowo, tylko że:
rkierzek napisał(a):
przerwanie przepełnienia TC1 i przerwanie ICP1 oraz PCINT i zamieszanie które może wystąpić bo nie znany jest "timing" tych zdarzeń.
pisząc o ICP1 miałem na myśli, żeby użyć go
alternatywnie do PCINT, a
nie oprócz. Jeśli w programie musisz korzystać z innych przerwań niż Overflow i Input Capture, to może być problem.
rkierzek napisał(a):
Nawet jeżeli będzie uruchomiona konstrukcja sprzętowa, to nie wiem jak sprowokować/emulować taką konkretną sytuację, żeby można ją debugować.
Można użyć debugera wbudowanego w Atmel Studio. Myślę, że takie proste zależności można zdebugować nawet nie dysponując debugerem sprzętowym używając symulatora.