/*   ----   Example using Arduino Interrupt Timer   ----
 *          (Atmega 168 and 328 have 3 timers)
 *    Setup: -- Wire an LED from digital pin 7 
 *              through a 330 ohm resistor to gnd
 *-------------------------------------------------------*/
 
 int LEDpin = 7;

void setup() {
  pinMode(LEDpin, OUTPUT);
  TIMSK1 = 0x01;   // enable timer 1 overflow interrupt
  TCNT1 = 0x000;   // reset timer to 0 at start
  TCCR1A = 0x00;   // set TCCRIA - turn off PWM
  TCCR1B = 0x04;   // set TCCRIB - prescalar value to /256
  
  // start serial access. -This is to get around a bug on some 
  // systems that don't initialize data reads properly
  Serial.begin(9600);
 }

void loop() {
  // Do useful stuff here, independent of timing
}

//--------------------------------------------------------
ISR(TIMER1_OVF_vect){      // Here is the interrupt code
  PORTD ^= _BV(PD7);
}