TVZ2020 / Mbed OS Konstrukcijski_Husnik

main.cpp

Committer:
jhusnik
Date:
2021-04-08
Revision:
0:77dba5d612e5

File content as of revision 0:77dba5d612e5:

#include "mbed.h"
#include "usb.h"

DigitalOut R(PA_0);
DigitalOut G(PA_1);
DigitalOut B(PC_0);
int t1 = 3;
int t2 = 1;

InterruptIn Pp(PA_4); 
Timer debounce;

Ticker signalizacija; 

float DC = 0.9;
PwmOut PWM(PC_7);

class Flasher { 
public: 
 Flasher(PinName pin) : _pin(pin) { 
  
 _pin = 0; 
 } 
 
 void flash() { 
 _pin = !_pin; 
 } 
 
private: 
 DigitalOut _pin; 
}; 

Flasher S(PA_8);

void Sign(){
        S.flash();
    }

void toggle (){
        if (debounce.read_ms()>200){
        R = 1; B = 0; G = 1;
        int i = 0;
        while(i<10){
            G = !G;
            i = i++;
            wait (0.3);
            }
        R = 0; B = 0; G = 0;
        }
        debounce.reset();
    }

void Semafor(){
        R = 1;
        wait (t1);
        R = 0;
        B = 1;
        wait(t2);
        B = 0;
        G = 1;
        wait (t1);
        B = 1;
        wait (t2);
        B = 0;
        G = 0;
    }
    
int main(){   

    signalizacija.attach(&Sign, 1);
    
    PWM.period(0.01);
    PWM = DC;

    debounce.start();
    Pp.rise(&toggle); 
    
    Start();
    
    while (1) {
        Semafor();
        
        if (PC.readable() == 1){  
            DC = Unos();
            PC.printf("%f\n\r", DC);
            PWM = DC;
        } 
    }
}