//Arduino timer CTC interrupt example
//
//avr-libc library includes
//#include <arduino.h>
//#include <avr/io.h>
//include <avr/interrupt.h>
#include <TimerOne.h>
#define LEDPIN 13
#define LEDPIN2 12
#define LEDPIN3 11
void setup()
{
Serial.begin(9600);
pinMode(LEDPIN, OUTPUT);
pinMode(LEDPIN2, OUTPUT);
pinMode(LEDPIN3, OUTPUT);
//initialize Timer1
Timer1.initialize(100); //us
Timer1.attachInterrupt(timerISR);
}
void loop()
{
Serial.print("LED 1 is :" );
if(digitalRead(LEDPIN)==HIGH) {
Serial.println("On");
}
else {
Serial.println("Off");
}
Serial.print("LED 2 is :" );
if(digitalRead(LEDPIN2)==HIGH) {
Serial.println("On");
}
else {
Serial.println("Off");
}
Serial.print("LED 3 is :" );
if(digitalRead(LEDPIN3)==HIGH) {
Serial.println("On");
}
else {
Serial.println("Off");
}
delay(1);
}
void timerISR(void)
{
static int tick=0;
if(tick % 2 == 1){ //ungerade zahlen 1,3,5,7,9
digitalWrite(LEDPIN, !digitalRead(LEDPIN));
}
else if(tick % 4 == 2){ //2,6,10,
digitalWrite(LEDPIN2,!digitalRead(LEDPIN2));
}
else if(tick % 8 == 4){ //4,12,20,
digitalWrite(LEDPIN3,!digitalRead(LEDPIN3));
}
tick++;
}