#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRD = 0b000000111;
	
	while (1)
	{
		PORTD = 0b000000100;   // Включаем зеленый
		_delay_ms(7000);       // Ждем 7секунд
		PORTD = 0b000000000;   // Выключаем зеленый
		_delay_ms(500);        // Ждем 500 миллисекунд
	PORTD = 0b000000100;       // Мигаем зеленым три раза через 1 секунду
		_delay_ms(1000);         
	PORTD = 0b000000000;    
		_delay_ms(1000);
	PORTD = 0b000000100;    
	    _delay_ms(1000);
	PORTD = 0b000000000;
	    _delay_ms(1000);
	PORTD = 0b000000100;     
	   _delay_ms(1000);
	PORTD = 0b000000000;       // Заканчиваем мигать зеленым три раза через 1 секунду
	   _delay_ms(500);         // Ждем 500 миллисекунд
	   PORTD = 0b000000010;    // Включаем желтый
	   _delay_ms(3000);        // Ждем 3секунды
	   PORTD = 0b000000000;    // Выключаем желтый
	   _delay_ms(500);         // Ждем 500 миллисекунд
	   PORTD = 0b000000001;    // Включаем красный
	   _delay_ms(7000);        // Ждем 7секунд
	   PORTD = 0b000000011;    // Включаем параллельно красному, желтый 
	   _delay_ms(2000);        // Ждем 2секунды
	   PORTD = 0b000000000;    // Выключаем желтый и красный
	   _delay_ms(500);         // Ждем 500 миллисекунд
	}
}
