Jap
Dependencies: DigitDisplay Led-libary PCF8563 mbed
main.cpp@1:0a2fe6db4925, 2016-05-20 (annotated)
- Committer:
- 04M04
- Date:
- Fri May 20 13:19:40 2016 +0000
- Revision:
- 1:0a2fe6db4925
- Parent:
- 0:a0deee96163f
Jap...es geht!!!! ;-)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
04M04 | 0:a0deee96163f | 1 | #include "mbed.h" |
04M04 | 0:a0deee96163f | 2 | #include "WS2812B.h" |
04M04 | 0:a0deee96163f | 3 | #include "PCF8563.h" |
04M04 | 0:a0deee96163f | 4 | #include "DigitDisplay.h" |
04M04 | 0:a0deee96163f | 5 | |
04M04 | 0:a0deee96163f | 6 | // G R B |
04M04 | 0:a0deee96163f | 7 | // | | | |
04M04 | 0:a0deee96163f | 8 | #define rGb (0x0f0000) //Rot |
04M04 | 0:a0deee96163f | 9 | #define Rgb (0x00ff00) //Grün |
04M04 | 0:a0deee96163f | 10 | #define rgB (0x0000ff) //Blau |
04M04 | 0:a0deee96163f | 11 | #define RgB (0x00ffff) //Violet |
04M04 | 0:a0deee96163f | 12 | #define rGB (0xff00ff) //Türkis |
04M04 | 0:a0deee96163f | 13 | #define RGb (0xffff00) //Rot-Grün |
04M04 | 0:a0deee96163f | 14 | #define RGB (0xffffff) //Weiß |
04M04 | 0:a0deee96163f | 15 | #define rgb (0x000000) //Aus |
04M04 | 0:a0deee96163f | 16 | //halbe Helligkeit |
04M04 | 0:a0deee96163f | 17 | #define hrGb (0x0f0000) //Rot |
04M04 | 0:a0deee96163f | 18 | #define hRgb (0x000f00) //Grün |
04M04 | 0:a0deee96163f | 19 | #define hrgB (0x00000f) //Blau |
04M04 | 0:a0deee96163f | 20 | #define hRgB (0x000f0f) //Violet |
04M04 | 0:a0deee96163f | 21 | #define hrGB (0x0f000f) //Türkis |
04M04 | 0:a0deee96163f | 22 | #define hRGb (0x0f0f00) //Rot-Grün |
04M04 | 0:a0deee96163f | 23 | #define hRGB (0x0f0f0f) //Weiß |
04M04 | 0:a0deee96163f | 24 | |
04M04 | 0:a0deee96163f | 25 | PCF8563 rtc; |
04M04 | 0:a0deee96163f | 26 | |
04M04 | 0:a0deee96163f | 27 | DigitalOut Led1(LED1); |
04M04 | 0:a0deee96163f | 28 | DigitalOut Led2(LED2); |
04M04 | 0:a0deee96163f | 29 | DigitalOut Led3(LED3); |
04M04 | 0:a0deee96163f | 30 | DigitalOut Led4(LED4); |
04M04 | 0:a0deee96163f | 31 | |
04M04 | 0:a0deee96163f | 32 | InterruptIn Taster1(p17); |
04M04 | 0:a0deee96163f | 33 | InterruptIn Taster2(p18); |
04M04 | 0:a0deee96163f | 34 | InterruptIn Taster3(p19); |
04M04 | 0:a0deee96163f | 35 | InterruptIn Taster4(p20); |
04M04 | 0:a0deee96163f | 36 | InterruptIn InternTaster1(P1_16); |
04M04 | 0:a0deee96163f | 37 | InterruptIn InternTaster2(P0_23); |
04M04 | 0:a0deee96163f | 38 | InterruptIn InternTaster3(P0_10); |
04M04 | 0:a0deee96163f | 39 | InterruptIn InternTaster4(P0_15); |
04M04 | 0:a0deee96163f | 40 | |
04M04 | 0:a0deee96163f | 41 | PwmOut Summer(p6); |
04M04 | 0:a0deee96163f | 42 | |
04M04 | 0:a0deee96163f | 43 | LedOut RGBStripe(p25); |
04M04 | 0:a0deee96163f | 44 | // (CLK, I/O) |
04M04 | 0:a0deee96163f | 45 | DigitDisplay TimerDisplay(p21, p22); |
04M04 | 0:a0deee96163f | 46 | // (CLK, I/O) |
04M04 | 0:a0deee96163f | 47 | DigitDisplay UhrDisplay(p23, p24); |
04M04 | 0:a0deee96163f | 48 | |
04M04 | 0:a0deee96163f | 49 | uint8_t hour, minute, sec; |
04M04 | 0:a0deee96163f | 50 | |
04M04 | 0:a0deee96163f | 51 | int color = rgb; |
04M04 | 0:a0deee96163f | 52 | int prozent = 0; |
04M04 | 0:a0deee96163f | 53 | |
04M04 | 0:a0deee96163f | 54 | void StripeOut(); |
04M04 | 0:a0deee96163f | 55 | void TimerOut(); |
04M04 | 0:a0deee96163f | 56 | void UhrOut(); |
04M04 | 0:a0deee96163f | 57 | void SummerOut(); |
04M04 | 0:a0deee96163f | 58 | void Set(); |
04M04 | 0:a0deee96163f | 59 | void Plus(); |
04M04 | 0:a0deee96163f | 60 | void Minus(); |
04M04 | 0:a0deee96163f | 61 | void StartStop(); |
04M04 | 0:a0deee96163f | 62 | |
04M04 | 0:a0deee96163f | 63 | int main() |
04M04 | 0:a0deee96163f | 64 | { |
04M04 | 0:a0deee96163f | 65 | Taster1.rise(&Set); |
04M04 | 0:a0deee96163f | 66 | Taster2.rise(&Plus); |
04M04 | 0:a0deee96163f | 67 | Taster3.rise(&Minus); |
04M04 | 0:a0deee96163f | 68 | Taster4.rise(&StartStop); |
04M04 | 0:a0deee96163f | 69 | InternTaster1.rise(&Set); |
04M04 | 0:a0deee96163f | 70 | InternTaster2.rise(&Plus); |
04M04 | 0:a0deee96163f | 71 | InternTaster3.rise(&Minus); |
04M04 | 0:a0deee96163f | 72 | InternTaster4.rise(&StartStop); |
04M04 | 0:a0deee96163f | 73 | |
04M04 | 1:0a2fe6db4925 | 74 | prozent = 10; |
04M04 | 1:0a2fe6db4925 | 75 | color=RGB; |
04M04 | 0:a0deee96163f | 76 | StripeOut(); |
04M04 | 1:0a2fe6db4925 | 77 | prozent = 0; |
04M04 | 0:a0deee96163f | 78 | while(1) { |
04M04 | 1:0a2fe6db4925 | 79 | color = rgb; |
04M04 | 0:a0deee96163f | 80 | StripeOut(); |
04M04 | 1:0a2fe6db4925 | 81 | wait(0.2); |
04M04 | 1:0a2fe6db4925 | 82 | prozent++; |
04M04 | 0:a0deee96163f | 83 | } |
04M04 | 0:a0deee96163f | 84 | } |
04M04 | 0:a0deee96163f | 85 | |
04M04 | 0:a0deee96163f | 86 | void StripeOut() |
04M04 | 0:a0deee96163f | 87 | { |
04M04 | 0:a0deee96163f | 88 | __disable_irq(); //Interrupt deaktivieren |
04M04 | 0:a0deee96163f | 89 | |
04M04 | 1:0a2fe6db4925 | 90 | for(int r=1; r<=prozent; r++) |
04M04 | 0:a0deee96163f | 91 | RGBStripe.WriteLed(color); //Farbe rausschreiben |
04M04 | 0:a0deee96163f | 92 | |
04M04 | 0:a0deee96163f | 93 | __enable_irq(); //Interrupt reaktivieren |
04M04 | 0:a0deee96163f | 94 | } |
04M04 | 0:a0deee96163f | 95 | |
04M04 | 0:a0deee96163f | 96 | void TimerOut() |
04M04 | 0:a0deee96163f | 97 | { |
04M04 | 0:a0deee96163f | 98 | TimerDisplay.write(0, 7); |
04M04 | 0:a0deee96163f | 99 | TimerDisplay.write(1, 3); |
04M04 | 0:a0deee96163f | 100 | TimerDisplay.setColon(1); |
04M04 | 0:a0deee96163f | 101 | TimerDisplay.write(2, 5); |
04M04 | 0:a0deee96163f | 102 | TimerDisplay.write(3, 3); |
04M04 | 0:a0deee96163f | 103 | } |
04M04 | 0:a0deee96163f | 104 | |
04M04 | 0:a0deee96163f | 105 | void UhrOut() |
04M04 | 0:a0deee96163f | 106 | { |
04M04 | 0:a0deee96163f | 107 | hour = rtc.read(HOURS); |
04M04 | 0:a0deee96163f | 108 | minute = rtc.read(MINUTES); |
04M04 | 0:a0deee96163f | 109 | sec = rtc.read(SECONDS); |
04M04 | 0:a0deee96163f | 110 | |
04M04 | 0:a0deee96163f | 111 | UhrDisplay.write(0, (minute >> 4)- 8); |
04M04 | 0:a0deee96163f | 112 | UhrDisplay.write(1, (minute & 0x0F)); |
04M04 | 0:a0deee96163f | 113 | UhrDisplay.setColon(1); |
04M04 | 0:a0deee96163f | 114 | UhrDisplay.write(2, (sec >> 4)- 8); |
04M04 | 0:a0deee96163f | 115 | UhrDisplay.write(3, (sec & 0x0F)); |
04M04 | 0:a0deee96163f | 116 | } |
04M04 | 0:a0deee96163f | 117 | |
04M04 | 0:a0deee96163f | 118 | void SummerOut() |
04M04 | 0:a0deee96163f | 119 | { |
04M04 | 0:a0deee96163f | 120 | // specify period first, then everything else |
04M04 | 0:a0deee96163f | 121 | Summer.period(0.001f); // 4 second period |
04M04 | 0:a0deee96163f | 122 | Summer.pulsewidth(0.0004); // 2 second pulse (on) |
04M04 | 0:a0deee96163f | 123 | // led flashing |
04M04 | 0:a0deee96163f | 124 | while(1); |
04M04 | 0:a0deee96163f | 125 | } |
04M04 | 0:a0deee96163f | 126 | |
04M04 | 0:a0deee96163f | 127 | void Set() |
04M04 | 0:a0deee96163f | 128 | { |
04M04 | 0:a0deee96163f | 129 | __disable_irq(); |
04M04 | 1:0a2fe6db4925 | 130 | Led1=!Led1; |
04M04 | 1:0a2fe6db4925 | 131 | wait(0.5); |
04M04 | 0:a0deee96163f | 132 | __enable_irq(); |
04M04 | 0:a0deee96163f | 133 | } |
04M04 | 0:a0deee96163f | 134 | void Plus() |
04M04 | 0:a0deee96163f | 135 | { |
04M04 | 0:a0deee96163f | 136 | __disable_irq(); |
04M04 | 0:a0deee96163f | 137 | Led2=!Led2; |
04M04 | 0:a0deee96163f | 138 | wait(0.5); |
04M04 | 0:a0deee96163f | 139 | __enable_irq(); |
04M04 | 0:a0deee96163f | 140 | } |
04M04 | 0:a0deee96163f | 141 | void Minus() |
04M04 | 0:a0deee96163f | 142 | { |
04M04 | 0:a0deee96163f | 143 | __disable_irq(); |
04M04 | 0:a0deee96163f | 144 | Led3=!Led3; |
04M04 | 0:a0deee96163f | 145 | wait(0.5); |
04M04 | 0:a0deee96163f | 146 | __enable_irq(); |
04M04 | 0:a0deee96163f | 147 | } |
04M04 | 0:a0deee96163f | 148 | void StartStop() |
04M04 | 0:a0deee96163f | 149 | { |
04M04 | 0:a0deee96163f | 150 | __disable_irq(); |
04M04 | 0:a0deee96163f | 151 | Led4=!Led4; |
04M04 | 0:a0deee96163f | 152 | wait(0.5); |
04M04 | 0:a0deee96163f | 153 | __enable_irq(); |
04M04 | 0:a0deee96163f | 154 | } |