Interrupts...

Good Day..!! this is my latest code.. the results that i get in the serial monitor do vary from 0 - 255 following the code is a sample result pattern.

my input for now is just a push button.

thank you

boolean state = HIGH;
int ledPin = 13; // LED connected to digital pin 13

unsigned volatile int viCountnew, viCountold, viCount;
int iCount1, count2;

void setup() // run once, when the sketch starts
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
TCCR1B = 1<<ICNC1 | 1<<ICES1 | 1<<CS12 | 0<<CS11 | 1<<CS10;

TIMSK1 = (1 << ICIE1);
Serial.begin(115200);
delay(10);
}

void loop() // run over and over again
{
cli();
iCount1 = viCount;
sei();
Serial.print("OLD: ");
Serial.println(iCount1, DEC);
digitalWrite(13, state);

}

ISR(TIMER1_CAPT_vect)
{

TCNT1 = 0; // reset the counter
viCount =ICR1; // the count since the same edge on the previous pulse
state = !state;
}

OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 0 OLD: 92 OLD: 92 OLD: 92 OLD: 92 OLD: 92 OLD: 92 OLD: 94 OLD: 94 OLD: 94 OLD: 94 OLD: 94 OLD: 234 OLD: 234 OLD: 234 OLD: 67 OLD: 67 OLD: 67 OLD: 83 OLD: 83 OLD: 83 OLD: 16 OLD: 16 OLD: 7 OLD: 7 OLD: 127 OLD: 127 OLD: 127 OLD: 204 OLD: 204 OLD: 204 OLD: 204 OLD: 204 OLD: 204 OLD: 204 OLD: 204 OLD: 111 OLD: 111 OLD: 130 OLD: 130 OLD: 3 OLD: 3 OLD: 144 OLD: 144 OLD: 151 OLD: 151 OLD: 20 OLD: 20 OLD: 109 OLD: 109 OLD: 141 OLD: 141 OLD: 165 OLD: 165 OLD: 191 OLD: 191 OLD: 110 OLD: 110 OLD: 211 OLD: 211 OLD: 20 OLD: 20 OLD: 20 OLD: 41 OLD: 41 OLD: 119 OLD: 119 OLD: 21 OLD: 21 OLD: 49 OLD: 49 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195 OLD: 195