Hai un pin a cui hai collegato un interrupt.
Mettiamo che questo interrupt sia di tipo CHANGE, così che scatti sia se il pin passa da 0 a 1 che viceversa.
Quando passa da 0 ad 1, tu azzeri il contatore del timer 1.
Quando passa da 1 a 0, leggi il contatore del timer 1, ed hai la durata del tuo impulso.
Fin qui è corretto, come ho impostato il problema?
E' giusto ma che valore devo mettere al timer1 per far in modo che non vada in overflow prima di aver finito di contare? sempre FFFF?
Bene. Adesso tu, sempre all'interno della ISR, metti ad 1 il pin 4 e poi carichi il timer 1 come ti ho detto in precedenza, con il valore che tu hai estratto dall'array in base alla precedente lettura. Quando il timer 1 va in overflow, ti mette a 0 il pin 4.
Devo fare il contrario, cioè mettere a 1 il pin 4 solo quando va in overflow, prima è basso...poi dovrò tirarlo giù di nuovo ma questo non è un problema..