Stefan Simbürger
/
RGB_LED
Übungen zur RGB-LED
main.cpp@1:1f8c1c63e73a, 2020-01-11 (annotated)
- Committer:
- Ursukar
- Date:
- Sat Jan 11 10:29:14 2020 +0000
- Revision:
- 1:1f8c1c63e73a
- Parent:
- 0:7a7d5bc16807
- Child:
- 2:b57e33335e5e
includes comments
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ursukar | 0:7a7d5bc16807 | 1 | ////////////////////////////////////////////// |
Ursukar | 0:7a7d5bc16807 | 2 | // Übungen zur PWM // |
Ursukar | 0:7a7d5bc16807 | 3 | // NUCLEO-L432KC // |
Ursukar | 0:7a7d5bc16807 | 4 | // Stefan Simbürger // |
Ursukar | 0:7a7d5bc16807 | 5 | // 10.01.2020 // |
Ursukar | 0:7a7d5bc16807 | 6 | // Übungen zu PWM an einer RGB-LED // |
Ursukar | 0:7a7d5bc16807 | 7 | ////////////////////////////////////////////// |
Ursukar | 0:7a7d5bc16807 | 8 | |
Ursukar | 0:7a7d5bc16807 | 9 | #include "mbed.h" |
Ursukar | 0:7a7d5bc16807 | 10 | |
Ursukar | 0:7a7d5bc16807 | 11 | PwmOut ledR(D1); |
Ursukar | 0:7a7d5bc16807 | 12 | BusOut ledStrip(D12, D11, D10, D6, D5, D4, D3, D2); |
Ursukar | 0:7a7d5bc16807 | 13 | Ticker t1; |
Ursukar | 0:7a7d5bc16807 | 14 | Ticker t_ledStrip; |
Ursukar | 0:7a7d5bc16807 | 15 | |
Ursukar | 1:1f8c1c63e73a | 16 | void LedR(); // Makes the red part of the RGB_LED up to 30% bright |
Ursukar | 1:1f8c1c63e73a | 17 | void timeCounter(); // Counts PWM steps in binary |
Ursukar | 0:7a7d5bc16807 | 18 | |
Ursukar | 0:7a7d5bc16807 | 19 | int main() { |
Ursukar | 0:7a7d5bc16807 | 20 | ledR.period(0.01f); |
Ursukar | 0:7a7d5bc16807 | 21 | t1.attach(callback(&LedR), 0.0001f * 10000); |
Ursukar | 0:7a7d5bc16807 | 22 | t_ledStrip.attach(callback(&timeCounter), 0.0001f * 10000); |
Ursukar | 0:7a7d5bc16807 | 23 | |
Ursukar | 0:7a7d5bc16807 | 24 | } |
Ursukar | 1:1f8c1c63e73a | 25 | |
Ursukar | 1:1f8c1c63e73a | 26 | // Increases the LED brightness by 1% each step |
Ursukar | 1:1f8c1c63e73a | 27 | // up to 30% |
Ursukar | 0:7a7d5bc16807 | 28 | void LedR() |
Ursukar | 0:7a7d5bc16807 | 29 | { |
Ursukar | 0:7a7d5bc16807 | 30 | ledR.write(ledR.read() + 0.001f); |
Ursukar | 0:7a7d5bc16807 | 31 | if(ledR.read() >= 0.03f) |
Ursukar | 0:7a7d5bc16807 | 32 | { |
Ursukar | 0:7a7d5bc16807 | 33 | ledR.write(0.0f); |
Ursukar | 0:7a7d5bc16807 | 34 | } |
Ursukar | 0:7a7d5bc16807 | 35 | } |
Ursukar | 1:1f8c1c63e73a | 36 | // Because of the same timelapse this function |
Ursukar | 1:1f8c1c63e73a | 37 | // counts every step of the PWM in a binary system |
Ursukar | 0:7a7d5bc16807 | 38 | void timeCounter() |
Ursukar | 0:7a7d5bc16807 | 39 | { |
Ursukar | 0:7a7d5bc16807 | 40 | if(ledStrip == 0x00 || ledR.read() == 0.0f) |
Ursukar | 0:7a7d5bc16807 | 41 | { |
Ursukar | 0:7a7d5bc16807 | 42 | ledStrip = 0x01; |
Ursukar | 0:7a7d5bc16807 | 43 | } |
Ursukar | 0:7a7d5bc16807 | 44 | else |
Ursukar | 0:7a7d5bc16807 | 45 | { |
Ursukar | 0:7a7d5bc16807 | 46 | ledStrip = ledStrip + 1; |
Ursukar | 0:7a7d5bc16807 | 47 | } |
Ursukar | 0:7a7d5bc16807 | 48 | |
Ursukar | 0:7a7d5bc16807 | 49 | } |