/*
#include <Arduino.h>
#define F_CPU 16000000UL
void isr();
void setup() {
pinMode(5, OUTPUT);
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), isr, CHANGE);
}
void loop() {
}
void isr() {
digitalWrite(5, !digitalRead(5));
}
*/
//////////////////////////////////////////////////////////
#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#define nop() asm volatile("nop\n")
volatile uint8_t state = 0;
ISR(INT0_vect) {
state = !state;
if (state) {
PORTD |= (1 << PORTD5);
} else {
PORTD &= ~(1 << PORTD5);
}
}
int main(void) {
DDRD &= ~(1 << DDD2);
PORTD |= (1 << PORTD2);
DDRD |= (1 << DDD5);
EICRA |= (1 << ISC00);
EIMSK |= (1 << INT0);
sei();
while (1) {
nop();
}
}