Prosiłbym o pomoc (podpowiedź/fragment kodu) jak zrealizować załączanie/wyłączanie na 1 przycisku.
#include <avr/io.h>
#include <util/delay.h>
#define PRZYCISK0 _BV(0)
#define PRZYCISK1 _BV(1)
#define PRZYCISK2 _BV(2)
#define PRZYCISK3 _BV(3)
#define LED _BV(3)
int main(void)
{
DDRA = PRZYCISK0|PRZYCISK1|PRZYCISK2|PRZYCISK3;
PORTA = PRZYCISK0|PRZYCISK1|PRZYCISK2|PRZYCISK3;
DDRB |= LED;
TCCR0 |= (1<<WGM01)|(1<<WGM00);
TCCR0 |= (1<<COM01)|(1<<COM00);
TCCR0 |= (1<<CS00);
OCR0=255;
while(1)
{
while(bit_is_clear(PINA,2)) OCR0 = 0; //wyłącz
while(bit_is_clear(PINA,0) && OCR0>0) //ściemniacz
{
OCR0--;
_delay_ms(10);
}
while(bit_is_clear(PINA,1) && OCR0<255) //rozjaśniacz
{
OCR0++;
_delay_ms(10);
}
while(bit_is_clear(PINA,3)) OCR0 = 255; //załącz
}
}