Übungen zur RGB-LED

Dependencies:   mbed

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?

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