#include <TimerOne.h>
#define led 9
void setup(void)
{
pinMode(led, OUTPUT);
Timer1.initialize(150000);
Timer1.attachInterrupt(blinkLED);
Serial.begin(9600);
}
int ledState = LOW;
volatile unsigned long blinkCount = 0; //use volatile for shared variables
void blinkLED(void)
{
Serial.println("step 99...");
if (ledState == LOW) {
ledState = HIGH;
blinkCount = blinkCount + 1;
} else {
ledState = LOW;
}
digitalWrite(led, ledState);
}
void loop(void)
{
Serial.println("step 1...");
delay(100);
unsigned long blinkCopy; // holds a copy of the blinkCount
Serial.println("step 2...");
delay(100);
noInterrupts();
Serial.println("step 3...");
delay(100);
blinkCopy = blinkCount;
Serial.println("step 4...");
delay(100);
interrupts();
Serial.println("step 5...");
delay(100);
Serial.print("blinkCount = ");
Serial.println(blinkCopy);
Serial.println("step 6...");
delay(100);
Serial.println("step 7...");
delay(100);
}