#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>
void main (void)
{ DDRB |= (1<<PB0); //Ausgänge festlegen PB und PD für Fußg.//
//Rest für normale Ampeln//
DDRD |= (1<<PD7);
DDRD |= (1<<PD6);
DDRD |= (1<<PD5);
DDRC |= (1<<PC5);
DDRC |= (1<<PC4);
DDRC |= (1<<PC3);
DDRC |= (1<<PC2);
DDRC |= (1<<PC1);
DDRC |= (1<<PC0);
do {
PORTD ^= (1<<PD7); //gelbe Fußgangerampeln blinken
_delay_ms(5000);
PORTC ^= (1<<PC4); //gelbe Autoampeln 1 blinken
_delay_ms(5000);
PORTC ^= (1<<PC1); //gelbe Autoampeln 2 blinken
_delay_ms(5000);
//Autoampeln 1 und 2 leuchten gelb
PORTC ^= (1<<PC4);
_delay_ms(500);
PORTC ^= (1<<PC1);
_delay_ms(500);
//GElb aus
PORTD |= (1<<PD7); //alle Ampeln sind aus
PORTC |= (1<<PC4);
PORTC |= (1<<PC1);
PORTB ^= (1<<PB0);
_delay_ms(500); //Fußgänger 1 Rot Ein
PORTD ^= (1<<PD6); //Fußgänger 2 Rot Ein
_delay_ms(500);
PORTC ^= (1<<PC5); //Auto 1 Rot Ein
_delay_ms(500);
PORTC ^= (1<<PC2); //Auto 2 Rot Ein
_delay_ms(500);
PORTC ^= (1<<PC4); //Auto A1 und A3 kommt gelb dazu
_delay_ms(500);
PORTD |= (1<<PD6); // Fußgänger 2,4,6,8 rot aus
PORTD ^= (1<<PD5); //Fußgänger 2 GRÜN Ein
_delay_ms(500);