nein
Dependencies: Debouncer DigitDisplay Led-libary PCF8563 mbed
Fork of WS_7_Seg_mit_LM1635 by
Revision 2:503467a441e6, committed 2016-05-30
- Comitter:
- sophia
- Date:
- Mon May 30 09:42:24 2016 +0000
- Parent:
- 1:838565907c81
- Commit message:
- Haupt
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 838565907c81 -r 503467a441e6 main.cpp --- a/main.cpp Fri Apr 29 06:32:42 2016 +0000 +++ b/main.cpp Mon May 30 09:42:24 2016 +0000 @@ -8,7 +8,7 @@ #define rgB (0x0000ff) //Blau #define RgB (0x00ffff) //Violet #define rGB (0xff00ff) //Türkis -#define RGb (0xffff00) //Rot-Grün +#define RGb (0xffff00) //Gelb #define RGB (0xffffff) //Weiß #define rgb (0x000000) //Aus //halbe Helligkeit @@ -17,10 +17,10 @@ #define hrgB (0x00000f) //Blau #define hRgB (0x000f0f) //Violet #define hrGB (0x0f000f) //Türkis -#define hRGb (0x0f0f00) //Rot-Grün +#define hRGb (0x0f0f00) //Gelb #define hRGB (0x0f0f0f) //Weiß - +Ticker UhrTick; Timeout timer; PCF8563 rtc; @@ -28,7 +28,7 @@ DigitalOut Led2(LED2); DigitalOut Led3(LED3); DigitalOut Led4(LED4); - + InterruptIn Taster1(p17); InterruptIn Taster2(p18); InterruptIn Taster3(p19); @@ -39,7 +39,7 @@ InterruptIn InternTaster4(P0_15); PwmOut Summer(p6); - + LedOut RGBStripe(p25); // (CLK, I/O) DigitDisplay TimerDisplay(p21, p22); @@ -47,15 +47,13 @@ DigitDisplay UhrDisplay(p23, p24); uint8_t hour, minute, sec; -int zahl =02; // Schmiedi mach was mit den Tastern, dass man die Zahl einstellen kann +int zahl =01; // Schmiedi mach was mit den Tastern, dass man die Zahl einstellen kann int second = 00; int t; int h; int z; int e; bool colon = true; -int vergleich=(zahl*60); - int color; @@ -69,17 +67,24 @@ e= (second-(z*10))/1; } -void ausgabe() +void ausgabe(int zahlzurzeit, int vergleich) { TimerDisplay.write(0, t); TimerDisplay.write(1, h); TimerDisplay.write(2, z); TimerDisplay.write(3, e); - pc.printf("\n %d %d : %d %d" ,t, h ,z,e); - + //pc.printf("\n %d %d : %d %d" ,t, h ,z,e); + pc.printf("Zahl: %d, Vergleich: %d", zahlzurzeit, vergleich); } - +void SummerOut() +{ + // specify period first, then everything else + Summer.period(0.001f); // 4 second period + Summer.pulsewidth(0.0004); // 2 second pulse (on) + // led flashing + //while(1); +} @@ -87,9 +92,11 @@ { __disable_irq(); //Interrupt deaktivieren + for(int r=0; r<=10; r++) RGBStripe.WriteLed(color); //Farbe rausschreiben + __enable_irq(); //Interrupt reaktivieren } @@ -98,63 +105,67 @@ 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));*/ - UhrDisplay.write(0, (minute >> 4)- 8); - UhrDisplay.write(1, (minute & 0x0F)); + UhrDisplay.write(0, (hour >> 4) & 0x03); + UhrDisplay.write(1, (hour & 0x0F)); UhrDisplay.setColon(1); - UhrDisplay.write(2, (sec >> 4)- 8); - UhrDisplay.write(3, (sec & 0x0F)); - - } - -void changecolor() + UhrDisplay.write(2, (minute >> 4)- 8); + UhrDisplay.write(3, (minute & 0x0F)); +} + +void changecolor(int vergleich, int zahlzurzeit) { - color = hRGb; + if(zahlzurzeit<=vergleich) { + color = hRGb; + + if(zahlzurzeit <= 1) + color = hRgb; + } else + color = hrGb; + + } + + int main() { - + UhrTick.attach(UhrOut, 0.1); + int vergleich=(zahl*60)*0.2; while(1) { + for( int x = (zahl+1); x > 0; x--) { + for (int y=second; y > 0; y--) { - - for( int x = (zahl+1); x > 0; x--) { - + int zahlzurzeit = (y+x*60)-60; + changecolor(vergleich,zahlzurzeit); - for (int y=second; y > 0; y--) { - - //color = hrGb; - - // timer.attach(&changecolor, vergleich*0.2); - if((y+x*60)<=vergleich*0.2) - color = hRGb; - - else - color = hrGb; - TimerDisplay.setColon(colon); - second--; berechne(); - ausgabe(); + ausgabe(zahlzurzeit, vergleich); StripeOut(); - UhrOut(); - wait(0.2); + wait(1); } - zahl--; second = 60; - - } + SummerOut(); TimerDisplay.on(); wait(0.5); + SummerOut(); TimerDisplay.off(); wait(0.5); + } }