Jap

Dependencies:   DigitDisplay Led-libary PCF8563 mbed

Committer:
04M04
Date:
Fri Apr 22 06:31:54 2016 +0000
Revision:
0:a0deee96163f
Child:
1:0a2fe6db4925
Jap

Who changed what in which revision?

UserRevisionLine numberNew 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 0:a0deee96163f 74 prozent = 100;
04M04 0:a0deee96163f 75 StripeOut();
04M04 0:a0deee96163f 76 while(1) {
04M04 0:a0deee96163f 77 UhrOut();
04M04 0:a0deee96163f 78 color = hRGB;
04M04 0:a0deee96163f 79 StripeOut();
04M04 0:a0deee96163f 80 wait(1);
04M04 0:a0deee96163f 81 }
04M04 0:a0deee96163f 82 }
04M04 0:a0deee96163f 83
04M04 0:a0deee96163f 84 void StripeOut()
04M04 0:a0deee96163f 85 {
04M04 0:a0deee96163f 86 __disable_irq(); //Interrupt deaktivieren
04M04 0:a0deee96163f 87
04M04 0:a0deee96163f 88 for(int r=0; r<=10; r++)
04M04 0:a0deee96163f 89 RGBStripe.WriteLed(color); //Farbe rausschreiben
04M04 0:a0deee96163f 90
04M04 0:a0deee96163f 91 __enable_irq(); //Interrupt reaktivieren
04M04 0:a0deee96163f 92 }
04M04 0:a0deee96163f 93
04M04 0:a0deee96163f 94 void TimerOut()
04M04 0:a0deee96163f 95 {
04M04 0:a0deee96163f 96 TimerDisplay.write(0, 7);
04M04 0:a0deee96163f 97 TimerDisplay.write(1, 3);
04M04 0:a0deee96163f 98 TimerDisplay.setColon(1);
04M04 0:a0deee96163f 99 TimerDisplay.write(2, 5);
04M04 0:a0deee96163f 100 TimerDisplay.write(3, 3);
04M04 0:a0deee96163f 101 }
04M04 0:a0deee96163f 102
04M04 0:a0deee96163f 103 void UhrOut()
04M04 0:a0deee96163f 104 {
04M04 0:a0deee96163f 105 hour = rtc.read(HOURS);
04M04 0:a0deee96163f 106 minute = rtc.read(MINUTES);
04M04 0:a0deee96163f 107 sec = rtc.read(SECONDS);
04M04 0:a0deee96163f 108
04M04 0:a0deee96163f 109 UhrDisplay.write(0, (minute >> 4)- 8);
04M04 0:a0deee96163f 110 UhrDisplay.write(1, (minute & 0x0F));
04M04 0:a0deee96163f 111 UhrDisplay.setColon(1);
04M04 0:a0deee96163f 112 UhrDisplay.write(2, (sec >> 4)- 8);
04M04 0:a0deee96163f 113 UhrDisplay.write(3, (sec & 0x0F));
04M04 0:a0deee96163f 114 }
04M04 0:a0deee96163f 115
04M04 0:a0deee96163f 116 void SummerOut()
04M04 0:a0deee96163f 117 {
04M04 0:a0deee96163f 118 // specify period first, then everything else
04M04 0:a0deee96163f 119 Summer.period(0.001f); // 4 second period
04M04 0:a0deee96163f 120 Summer.pulsewidth(0.0004); // 2 second pulse (on)
04M04 0:a0deee96163f 121 // led flashing
04M04 0:a0deee96163f 122 while(1);
04M04 0:a0deee96163f 123 }
04M04 0:a0deee96163f 124
04M04 0:a0deee96163f 125 void Set()
04M04 0:a0deee96163f 126 {
04M04 0:a0deee96163f 127 __disable_irq();
04M04 0:a0deee96163f 128
04M04 0:a0deee96163f 129
04M04 0:a0deee96163f 130
04M04 0:a0deee96163f 131 __enable_irq();
04M04 0:a0deee96163f 132
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 }