Tuer-Schild/Door/Door.cpp

94 lines
3.1 KiB
C++

/*
* Door.cpp
*
* Created: 04.09.2014 22:06:23
* Author: netz
*/
#include "peripheral.h"
#include <util/delay.h>
uartclass Serial;
stripeclass stripe;
ledclass led;
compclass comp;
irclass ir;
int main(void)
{
sei();
uint8_t doorstatus = 0;
stripe.setcolor(stripe.RED);
Serial.println("Rot!");
_delay_ms(100);
stripe.setcolor(stripe.GREEN);
Serial.println("Grün!");
_delay_ms(100);
stripe.setcolor(stripe.BLUE);
Serial.println("Blau!");
_delay_ms(100);
stripe.setcolor(stripe.WHITE);
Serial.println("Weiß, alles Initialisert! Habe Fertig und damit ab zum Normalbetrieb!");
_delay_ms(100);
led.green(1);
stripe.setcolor(stripe.BLACK);
uint8_t remotetimer = 10;
while(1)
{
uint8_t c = ir.getCode();
switch(c) {
case 255: break; //Kein Code empfangen
case 0: stripe.higher(); break; //Button High
case 1: stripe.lower(); break; //Button Low
case 2: stripe.off(); break; //Button OFF
case 3: stripe.on(); break; //Button ON
case 4: stripe.fadeto(0xFF,0x00,0x00,remotetimer); break; //Button R
case 5: stripe.fadeto(0x00,0xFF,0x00,remotetimer); break; //Button G
case 6: stripe.fadeto(0x00,0x00,0xFF,remotetimer); break; //Button B
case 7: stripe.fadeto(0xFF,0xFF,0xFF,remotetimer); break; //Button W
case 8: stripe.fadeto(0xFF,0x40,0x00,remotetimer); break; //Color Red 100 % + Green 25 %
case 9: stripe.fadeto(0x00,0xFF,0x40,remotetimer); break; //Color Green 100 % + Blue 25 %
case 10: stripe.fadeto(0x40,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 25 %
case 11: break; //Button Flash
case 12: stripe.fadeto(0xFF,0x80,0x00,remotetimer); break; //Color Red 100 % + Green 50 %
case 13: stripe.fadeto(0x00,0xFF,0x80,remotetimer); break; //Color Green 100 % + Blue 50 %
case 14: stripe.fadeto(0x80,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 50 %
case 15: break; //Button STROBE
case 16: stripe.fadeto(0xFF,0xC0,0x00,remotetimer); break; //Color Red 100 % + Green 75 %
case 17: stripe.fadeto(0x00,0xFF,0xC0,remotetimer); break; //Color Green 100 % + Blue 75 %
case 18: stripe.fadeto(0xC0,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 75 %
case 19: break; //Button FADE
case 20: stripe.fadeto(0xFF,0xFF,0x00,remotetimer); break; //Color Red 100 % + Green 100 %
case 21: stripe.fadeto(0x00,0xFF,0xFF,remotetimer); break; //Color Green 100 % + Blue 100 %
case 22: stripe.fadeto(0xFF,0x00,0xFF,remotetimer); break; //Color Blue 100 % + Red 100 %
case 23: break; //Button SMOOTH
default: Serial.printDec(c); Serial.println(" Pressed!"); break; //Code den ich nicht kenne
}
if(comp.is_active()) {
if(doorstatus == 0) {
doorstatus = 1;
stripe.fadeto(0xFF,0x00,0x00,100);
Serial.println("Tür Zu...");
}
} else {
if(doorstatus == 1) {
doorstatus = 0;
Serial.println("Tür Offen...");
stripe.fadeto(0x00,0xFF,0x00,50);
}
}
_delay_ms(1);
led.green(0);
_delay_ms(99);
led.green(1);
}
}
ISR(INT0_vect) {
ir.interrupt();
}
ISR(TIMER1_OVF_vect) {
stripe.interrupt();
}