/*
* Projekt: Ampelsteuerung
* Datei: Ampelsteuerung.cpp
*
* Created: 20.03.2020
* Author : Niklas Menke (niklas-menke.com)
*
* Version: 1.0.0
*/
#define F_CPU 1200000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
// Benutzervariablen
const uint16_t rotphase = 20000; // Rotphase in ms
const uint16_t gruenphase = 20000; // Grünphase in ms
const uint16_t gelbphase = 1000; // (Rot-)Gelbphase in ms
// Eingänge
// Derzeit nicht verwendet
// Ausgänge:
const uint8_t gruen = 0 | (1<<PB2);
const uint8_t gelb = 0 | (1<<PB1);
const uint8_t rot = 0 | (1<<PB0);
// Pins als Ausgänge setzen und Ausschalten
DDRB = gruen | gelb | rot;
PORTB = 0;
// Ampelschaltung
while (1)
{
// Grün
PORTB |= gruen;
_delay_ms(gruenphase);
// Gelb
PORTB &= ~gruen;
PORTB |= gelb;
_delay_ms(gelbphase);
// Rot
PORTB &= ~gelb;
PORTB |= rot;
_delay_ms(rotphase);
// Gelb-Rot
PORTB |= gelb;
_delay_ms(gelbphase);
// Grün
PORTB &= ~(gelb | rot);
}
}