TVZ2020 / Mbed OS Konstrukcijski_Husnik
Committer:
jhusnik
Date:
Thu Apr 08 16:32:55 2021 +0000
Revision:
0:77dba5d612e5
a

Who changed what in which revision?

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