#include <Arduino.h>
// Interrupt Service Routine
// exekveras vid TIMER3 OVerFlow
ISR(TIMER3_OVF_vect)
{
if (PORTE & 0b01000000) // är LEDn på?
{
PORTE &= 0b10111111; // släck LED PE6
}
else
{
PORTE |= 0b01000000; // tänd LED PE6
}
}
void setup()
{
Serial.begin(9600);
DDRE = (1 << PE6); // sätter PE6 som utgång
TCCR3A = 0b00000000; // normal mode - räkna till 65535
// TCCR3B = 0b00000001; // 1:1 prescaler, 8 MHz
// TCCR3B = 0b00000010; // 8:1 prescaler, 1 MHz
TCCR3B = 0b00000011; // 64:1 prescaler, 125 kHz
// TCCR3B = 0b00000100; // 256:1 prescaler, 31250 Hz
// TCCR3B = 0b00000101; // 1024:1 prescaler, 7812,5 Hz
TIMSK3 = 0b00000001; // tillåt TOIE3 Timer Overflow Interrupt
}
void loop()
{
Serial.println(TCNT3);
delay(300);
}
Comments