//PCINT1 Triggered from external source at pin PB1
#include <avr/io.h>
#include <avr/interrupt.h>
void initInterrupt() {
GIMSK |= 1 << PCIE; // enable PCINT[0:5] pin change interrupt
PCMSK |= 1 << PCINT1; // configure interrupt at PB1
sei(); // globaly enable interrupts
}
void setup() {
DDRB |= 1 << DDB4; // define PB4 as output
DDRB &= ~ (1 << DDB1); // define PB1 as input
PORTB |= 1 << PB1; // enable pull up resistor at PB1
initInterrupt();
}
ISR(PCINT0_vect) {
PORTB ^= (1 << PB4); // inverse logical level at PB4 / blink
}
void loop() {
// nop
}