![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Übungen zu Klassen 3BHEL
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 //DigitalOut myled(LED1); 00004 00005 class MyLed { 00006 DigitalOut _led; 00007 public: 00008 MyLed(PinName pin) : _led(pin) { } 00009 00010 void LedOn() { _led = 1; } 00011 void LedOff() { _led = 0; } 00012 }; 00013 00014 // Bei drücken eines Tasters soll eine ISR aufgerufen werden 00015 // bool CheckFlag(); // soll true zurück geben, wenn eine Taste gedrückt wurde 00016 00017 class Event { 00018 InterruptIn _isr; 00019 bool _pressed; 00020 public: 00021 Event(PinName pin) : _isr(pin) { 00022 _isr.rise(this, &Event::rise); 00023 _pressed = false; 00024 } 00025 00026 void rise() { 00027 _pressed = true; 00028 } 00029 00030 bool CheckFlag() { 00031 if(_pressed) { 00032 _pressed=false; 00033 return true; 00034 } 00035 return false; 00036 } 00037 }; 00038 00039 class RgbLed { 00040 PwmOut _g; 00041 PwmOut _b; 00042 PwmOut _r; 00043 public: 00044 RgbLed(PinName g, PinName b, PinName r) : _g(g), _b(b), _r(r) { } 00045 00046 void write(float g, float b, float r) { 00047 _g = g; 00048 _b = b; 00049 _r = r; 00050 } 00051 }; 00052 00053 MyLed myled2(LED1); 00054 MyLed myled3(LED3); 00055 RgbLed myled(P0_9, P1_15, P0_21); // g, b, r 00056 Event sw1(P0_10); 00057 00058 int main() { 00059 while(1) { 00060 if(sw1.CheckFlag()) { 00061 myled3.LedOn(); 00062 wait(0.5f); 00063 myled3.LedOff(); 00064 } 00065 00066 myled.write(0.1, 0.2, 0.3); 00067 myled2.LedOn(); 00068 wait(0.2); 00069 myled2.LedOff(); 00070 wait(0.2); 00071 00072 } 00073 }
Generated on Sun Jul 31 2022 15:36:29 by
![doxygen](doxygen.png)