Jap

Dependencies:   DigitDisplay Led-libary PCF8563 mbed

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?

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 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 }