Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:77dba5d612e5, 2021-04-08 (annotated)
- Committer:
- jhusnik
- Date:
- Thu Apr 08 16:32:55 2021 +0000
- Revision:
- 0:77dba5d612e5
a
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jhusnik | 0:77dba5d612e5 | 1 | #include "mbed.h" |
| jhusnik | 0:77dba5d612e5 | 2 | #include "usb.h" |
| jhusnik | 0:77dba5d612e5 | 3 | |
| jhusnik | 0:77dba5d612e5 | 4 | DigitalOut R(PA_0); |
| jhusnik | 0:77dba5d612e5 | 5 | DigitalOut G(PA_1); |
| jhusnik | 0:77dba5d612e5 | 6 | DigitalOut B(PC_0); |
| jhusnik | 0:77dba5d612e5 | 7 | int t1 = 3; |
| jhusnik | 0:77dba5d612e5 | 8 | int t2 = 1; |
| jhusnik | 0:77dba5d612e5 | 9 | |
| jhusnik | 0:77dba5d612e5 | 10 | InterruptIn Pp(PA_4); |
| jhusnik | 0:77dba5d612e5 | 11 | Timer debounce; |
| jhusnik | 0:77dba5d612e5 | 12 | |
| jhusnik | 0:77dba5d612e5 | 13 | Ticker signalizacija; |
| jhusnik | 0:77dba5d612e5 | 14 | |
| jhusnik | 0:77dba5d612e5 | 15 | float DC = 0.9; |
| jhusnik | 0:77dba5d612e5 | 16 | PwmOut PWM(PC_7); |
| jhusnik | 0:77dba5d612e5 | 17 | |
| jhusnik | 0:77dba5d612e5 | 18 | class Flasher { |
| jhusnik | 0:77dba5d612e5 | 19 | public: |
| jhusnik | 0:77dba5d612e5 | 20 | Flasher(PinName pin) : _pin(pin) { |
| jhusnik | 0:77dba5d612e5 | 21 | |
| jhusnik | 0:77dba5d612e5 | 22 | _pin = 0; |
| jhusnik | 0:77dba5d612e5 | 23 | } |
| jhusnik | 0:77dba5d612e5 | 24 | |
| jhusnik | 0:77dba5d612e5 | 25 | void flash() { |
| jhusnik | 0:77dba5d612e5 | 26 | _pin = !_pin; |
| jhusnik | 0:77dba5d612e5 | 27 | } |
| jhusnik | 0:77dba5d612e5 | 28 | |
| jhusnik | 0:77dba5d612e5 | 29 | private: |
| jhusnik | 0:77dba5d612e5 | 30 | DigitalOut _pin; |
| jhusnik | 0:77dba5d612e5 | 31 | }; |
| jhusnik | 0:77dba5d612e5 | 32 | |
| jhusnik | 0:77dba5d612e5 | 33 | Flasher S(PA_8); |
| jhusnik | 0:77dba5d612e5 | 34 | |
| jhusnik | 0:77dba5d612e5 | 35 | void Sign(){ |
| jhusnik | 0:77dba5d612e5 | 36 | S.flash(); |
| jhusnik | 0:77dba5d612e5 | 37 | } |
| jhusnik | 0:77dba5d612e5 | 38 | |
| jhusnik | 0:77dba5d612e5 | 39 | void toggle (){ |
| jhusnik | 0:77dba5d612e5 | 40 | if (debounce.read_ms()>200){ |
| jhusnik | 0:77dba5d612e5 | 41 | R = 1; B = 0; G = 1; |
| jhusnik | 0:77dba5d612e5 | 42 | int i = 0; |
| jhusnik | 0:77dba5d612e5 | 43 | while(i<10){ |
| jhusnik | 0:77dba5d612e5 | 44 | G = !G; |
| jhusnik | 0:77dba5d612e5 | 45 | i = i++; |
| jhusnik | 0:77dba5d612e5 | 46 | wait (0.3); |
| jhusnik | 0:77dba5d612e5 | 47 | } |
| jhusnik | 0:77dba5d612e5 | 48 | R = 0; B = 0; G = 0; |
| jhusnik | 0:77dba5d612e5 | 49 | } |
| jhusnik | 0:77dba5d612e5 | 50 | debounce.reset(); |
| jhusnik | 0:77dba5d612e5 | 51 | } |
| jhusnik | 0:77dba5d612e5 | 52 | |
| jhusnik | 0:77dba5d612e5 | 53 | void Semafor(){ |
| jhusnik | 0:77dba5d612e5 | 54 | R = 1; |
| jhusnik | 0:77dba5d612e5 | 55 | wait (t1); |
| jhusnik | 0:77dba5d612e5 | 56 | R = 0; |
| jhusnik | 0:77dba5d612e5 | 57 | B = 1; |
| jhusnik | 0:77dba5d612e5 | 58 | wait(t2); |
| jhusnik | 0:77dba5d612e5 | 59 | B = 0; |
| jhusnik | 0:77dba5d612e5 | 60 | G = 1; |
| jhusnik | 0:77dba5d612e5 | 61 | wait (t1); |
| jhusnik | 0:77dba5d612e5 | 62 | B = 1; |
| jhusnik | 0:77dba5d612e5 | 63 | wait (t2); |
| jhusnik | 0:77dba5d612e5 | 64 | B = 0; |
| jhusnik | 0:77dba5d612e5 | 65 | G = 0; |
| jhusnik | 0:77dba5d612e5 | 66 | } |
| jhusnik | 0:77dba5d612e5 | 67 | |
| jhusnik | 0:77dba5d612e5 | 68 | int main(){ |
| jhusnik | 0:77dba5d612e5 | 69 | |
| jhusnik | 0:77dba5d612e5 | 70 | signalizacija.attach(&Sign, 1); |
| jhusnik | 0:77dba5d612e5 | 71 | |
| jhusnik | 0:77dba5d612e5 | 72 | PWM.period(0.01); |
| jhusnik | 0:77dba5d612e5 | 73 | PWM = DC; |
| jhusnik | 0:77dba5d612e5 | 74 | |
| jhusnik | 0:77dba5d612e5 | 75 | debounce.start(); |
| jhusnik | 0:77dba5d612e5 | 76 | Pp.rise(&toggle); |
| jhusnik | 0:77dba5d612e5 | 77 | |
| jhusnik | 0:77dba5d612e5 | 78 | Start(); |
| jhusnik | 0:77dba5d612e5 | 79 | |
| jhusnik | 0:77dba5d612e5 | 80 | while (1) { |
| jhusnik | 0:77dba5d612e5 | 81 | Semafor(); |
| jhusnik | 0:77dba5d612e5 | 82 | |
| jhusnik | 0:77dba5d612e5 | 83 | if (PC.readable() == 1){ |
| jhusnik | 0:77dba5d612e5 | 84 | DC = Unos(); |
| jhusnik | 0:77dba5d612e5 | 85 | PC.printf("%f\n\r", DC); |
| jhusnik | 0:77dba5d612e5 | 86 | PWM = DC; |
| jhusnik | 0:77dba5d612e5 | 87 | } |
| jhusnik | 0:77dba5d612e5 | 88 | } |
| jhusnik | 0:77dba5d612e5 | 89 | } |