Dependencies:   DigitDisplay PCF8563 Led-libary dPrell mbed

Files at this revision

API Documentation at this revision

Comitter:
04M04
Date:
Fri Jun 03 08:25:06 2016 +0000
Commit message:

Changed in this revision

DigitDisplay.lib Show annotated file Show diff for this revision Revisions of this file
PCF8563.lib Show annotated file Show diff for this revision Revisions of this file
WS2812.lib Show annotated file Show diff for this revision Revisions of this file
dPrell.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DigitDisplay.lib	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/seeed/code/DigitDisplay/#d3173c8bfd48
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PCF8563.lib	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/Ladner-Schmied/code/PCF8563/#d7f120bcedd7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WS2812.lib	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Ladner-Schmied/code/Led-libary/#a2549b9f2785
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dPrell.lib	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Ladner-Schmied/code/dPrell/#7a8af0d62537
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,259 @@
+//______________________________________________________Bibliotheken
+#include "mbed.h"
+#include "WS2812B.h"
+#include "PCF8563.h"
+#include "DigitDisplay.h"
+#include "dPrell.h"
+//______________________________________________________Farbdefinitionen
+//             G R B
+//             | | |
+#define rGb (0x0f0000)  //Grün
+#define Rgb (0x00ff00)  //Rot
+#define rgB (0x0000ff)  //Blau
+#define RgB (0x00ffff)  //Violet
+#define rGB (0xff00ff)  //Türkis
+#define RGb (0xffff00)  //Rot-Grün
+#define RGB (0xffffff)  //Weiß
+#define rgb (0x000000)  //Aus
+//halbe Helligkeit
+#define hrGb (0x0f0000)  //Grün
+#define hRgb (0x000f00)  //Rot
+#define hrgB (0x00000f)  //Blau
+#define hRgB (0x000f0f)  //Violet
+#define hrGB (0x0f000f)  //Türkis
+#define hRGb (0x0f0f00)  //Rot-Grün
+#define hRGB (0x0f0f0f)  //Weiß
+//______________________________________________________Schnittstellen
+Ticker TickerOutput;
+
+PCF8563 rtc;
+
+DigitalOut Led1(LED1);
+DigitalOut Led2(LED2);
+DigitalOut Led3(LED3);
+DigitalOut Led4(LED4);
+
+dPrell Taster1(p17);
+dPrell Taster2(p18);
+dPrell Taster3(p19);
+dPrell Taster4(p20);
+dPrell InternTaster1(P1_16);
+dPrell InternTaster2(P0_23);
+dPrell InternTaster3(P0_10);
+dPrell InternTaster4(P0_15);
+
+PwmOut Summer(p6);
+
+LedOut RGBStripe(p25);
+//                       (CLK, I/O)
+DigitDisplay TimerDisplay(p21, p22);
+//                     (CLK, I/O)
+DigitDisplay UhrDisplay(p23, p24);
+
+Serial pc(USBTX, USBRX);
+//______________________________________________________Variablen
+
+uint8_t hour, minute, sec;
+
+int color = rgb;
+int ColorTime = 0;
+int Prozent = 0;
+int TimerZeit = 0;
+int TimerMinuten = 0;
+int TimerSekunden = 0;
+int UhrZeit = 0;
+int SetMenu = 0;
+int StartStop = 0;
+int End = 0;
+//______________________________________________________Funktionen
+
+void Set();
+void Plus();
+void Minus();
+void TimerStartStop();
+void TasterTrig();
+
+void TimerIn();
+void TimerPlay();
+void TimerOut();
+void ChangeColor();
+void StripeOut();
+void UhrOut();
+void SummerOut();
+void Output();
+void EndSignal();
+//______________________________________________________Main
+int main()
+{
+    TickerOutput.attach(&Output, 0.1);
+
+    Taster1.rise(&Set);
+    Taster2.rise(&Plus);
+    Taster3.rise(&Minus);
+    Taster4.rise(&TimerStartStop);
+    InternTaster1.rise(&Set);
+    InternTaster2.rise(&Plus);
+    InternTaster3.rise(&Minus);
+    InternTaster4.rise(&TimerStartStop);
+    while(1) {
+        if(SetMenu == 0 && (TimerMinuten > 0 || TimerSekunden > 0) && StartStop == 1) {
+            TimerPlay();
+        } else if(SetMenu == 0 && StartStop >=0) {
+            StartStop = 0;
+        }
+        if(End > 0) {
+            EndSignal();
+        }
+    }
+}
+//______________________________________________________Interrupts
+
+void Set()
+{
+    Led1 = !Led1;
+    if (SetMenu == 0 && StartStop == 0) {
+        SetMenu++;
+    } else if (SetMenu >= 1 && StartStop == 0) {
+        SetMenu = 0;
+    }
+    End = 0;
+    Summer.pulsewidth(0);
+    TasterTrig();
+}
+void Plus()
+{
+    Led2 = !Led2;
+    if(SetMenu==1) {
+        TimerMinuten++;
+        TimerSekunden = 0;
+    }
+    TasterTrig();
+
+}
+void Minus()
+{
+    Led3 = !Led3;
+    if(SetMenu==1 && minute>0) {
+        TimerMinuten--;
+        TimerSekunden = 0;
+    }
+    TasterTrig();
+
+}
+void TimerStartStop()
+{
+    Led4 = !Led4;
+    if(SetMenu == 0 && (TimerMinuten > 0 || TimerSekunden > 0) && StartStop == 0) {
+        StartStop++;
+    } else if(SetMenu == 0 && StartStop >=1) {
+        StartStop = 0;
+    }
+    TasterTrig();
+}
+//______________________________________________________Funktionen
+
+void TasterTrig()
+{
+    Taster1.trig();
+    Taster2.trig();
+    Taster3.trig();
+    Taster4.trig();
+    InternTaster1.trig();
+    InternTaster2.trig();
+    InternTaster3.trig();
+    InternTaster4.trig();
+}
+//______________________________________________________Timer-Bereich
+
+void TimerPlay()
+{
+    while(TimerMinuten > 0) {
+        if(TimerSekunden == 0) {
+            TimerMinuten--;
+            TimerSekunden = 60;
+        }
+        while(TimerSekunden >0) {
+            TimerSekunden--;
+            wait(1);
+            if(StartStop==0) {
+                return;
+            }
+        }
+    }
+    if(TimerMinuten < 1 && TimerSekunden < 1) {
+        End++;
+        StartStop = 0;
+    }
+    return;
+}
+
+void TimerOut()
+{
+    TimerZeit = (TimerMinuten * 100) + TimerSekunden;
+    TimerDisplay.write(TimerZeit);
+    TimerDisplay.setColon(1);
+}
+//______________________________________________________RGB-,Uhr-,Summer-Bereich
+
+void ChangeColor()
+{
+    if(ColorTime <= 10) {
+        color = Rgb;
+    } else if(ColorTime <= 50) {
+        color = rGB;
+    } else
+        color = rGb;
+}
+
+void StripeOut()
+{
+    __disable_irq();            //Interrupt deaktivieren
+
+    for(int r=1; r<=Prozent; r++)
+        RGBStripe.WriteLed(color);  //Farbe rausschreiben
+
+    __enable_irq();             //Interrupt reaktivieren
+}
+
+void UhrOut()
+{
+    hour = rtc.read(HOURS);
+    minute = rtc.read(MINUTES);
+    sec = rtc.read(SECONDS);
+
+    UhrDisplay.write(0, (minute >> 4)- 8);
+    UhrDisplay.write(1, (minute & 0x0F));
+    UhrDisplay.setColon(1);
+    UhrDisplay.write(2, (sec >> 4)- 8);
+    UhrDisplay.write(3, (sec & 0x0F));
+}
+
+void SummerOut()
+{
+    // specify period first, then everything else
+    Summer.period(0.001f);  // 0.001 second period
+    Summer.pulsewidth(0.0004); // 0.0004 second pulse (on)
+    // led flashing
+    wait(4);
+    Summer.pulsewidth(0);
+}
+
+void Output()
+{
+    TimerOut();
+    //StripeOut();
+    UhrOut();
+}
+
+void EndSignal()
+{
+    __disable_irq();
+    color = Rgb;
+    Prozent = 10;
+    StripeOut();
+    SummerOut();
+    color = rgb;
+    StripeOut();
+    End = 0;
+    __enable_irq();
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Jun 03 08:25:06 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/082adc85693f
\ No newline at end of file