rendered paste body#include <avr/io.h>#include <avr/interrupt.h>#include <stdint.h>#include <avr/sfr_defs.h>#include <util/delay.h>#define F_CPU 4000000#define STOP 0#define RUN 1uint8_t state;volatile uint8_t intLed = 0;void enableAllStops(){ PORTD |=(1<<PD6)|(1<<PD4);}void disableAllStops(){ PORTD &=~(1<<PD6)&~(1<<PD4);}void enableRun(){}void disableRun(){ PORTD &=~(1<<PD5);}SIGNAL(SIG_INTERRUPT0){ intLed=1; //RESET if(bit_is_set(PINA,PA0) && state==STOP){ disableAllStops(); PORTD |=(1<<PD5); state=RUN; } //SW1 if(bit_is_set(PINA,PA1) && state==RUN){ disableRun(); PORTD |=(1<<PD6); state=STOP; } //SW2 if(bit_is_set(PINA,PA2) && state==RUN){ disableRun(); PORTD |=(1<<PD4); state=STOP; }}int main(void){ state=STOP; GICR=0xC0; MCUCR=0x01; sei(); DDRD |= (1<<PD6)|(1<<PD5)|(1<<PD4); DDRB |= (1<<PB0); DDRA = 0x00; //alla pinnar i porta som input riktning PORTD |= (1 << PD2); PORTA = 0x00; //pullup 0 pa alla pinnar PORTB |=(1<<PB0); enableAllStops(); while (1) { if(intLed){ PORTB ^=(1<<PB0); _delay_ms(10); } else intLed=0; } return 0;}