//-------------------------------------------------------------------------
// Titel : Fußgängerampel
//-------------------------------------------------------------------------
// Funktion : bei Tastendruck schaltet Fußgängerampel nach kurzer Wartephase
//			  auf grün, Verkehrsampel schaltet auf rot
// Schaltung : Taster1=PC4,Taster2=PC5,
//-------------------------------------------------------------------------
// Prozessor : ATmega8
// Takt : 3686400 Hz
// Sprache : C
// Datum : 1.2.2010
// Version : 1.0
// Autor : 
// Programmer: 
// Port : 
//-------------------------------------------------------------------------
// created by myAVR-CodeWizard
//-------------------------------------------------------------------------
//
#define F_CPU 	3686400
#include <avr\io.h>
void fussgaenger();
bool taster=false;
//------------------------------------------------------------------------
// Initialisierungen
//------------------------------------------------------------------------
void init()
{
	// Ports initialisieren
	DDRD   = 0b11111100;
	DDRC   = 0b00001111;
	PORTC |= 0b00110000;
}

/////////////////////////////////////////////////////////////////////////////
// Main-Funktion
/////////////////////////////////////////////////////////////////////////////
main()
{
	init(); 	// Initialisierungen
	while (true)  	// Mainloop-Begin
	{
		//Taster gedrückt
		if((!(PINC & 0b00010000)) || (!(PINC & 0b00100000)))
		{
			taster=true;
			fussgaenger();
		}

		//Taster nicht gedrückt
		if(!taster)
		{
			PORTD = 0b11000000;		// Hauptverkehr grün
			PORTC = 0b00110011;		// Fußgänger rot
		}
	}
	// Mainloop-Ende
}

void fussgaenger()
{
	PORTD = 0b11000000;		// Hauptverkehr grün
	waitMs(1000);
	PORTD = 0b00110000;		// Hauptverkehr gelb
	waitMs(1000);
	PORTD = 0b00001100;		// Hauptverkehr rot
	waitMs(1500);
	PORTC = 0b00001100;		// Fußgänger grün
	waitMs(5000);
	PORTC = 0b00000011;		// Fußgänger rot
	waitMs(1500);
	PORTD = 0b00111100;		// Hauptverkehr gelb
	waitMs(1000);
	PORTD = 0b11000000;		// Hauptverkehr grün
	waitMs(1000);
	taster=false;
}
