TVZ2020 / Mbed 2 deprecated F1_paddle_shift

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "SegDisplay.h"
00003 InterruptIn button1(PA_5); //Interrupt pin
00004 InterruptIn button2(PA_6); //Interrupt pin
00005 Serial pc(USBTX, USBRX); //Serijska komunikacija s računalom
00006 DigitalOut greenLED(PA_10);
00007 DigitalOut yellowLED(PB_3);
00008 DigitalOut redLED(PB_5);
00009 Ticker blink; //Ticker za blinkanje ledice
00010 Timer debounce; //Timer za micanje debouncinga
00011 void toggle(void); //inicijalizacija funkcije
00012 void toggle2(void); //inicijalizacija funkcije
00013 void Upozorenje(void); //inicijalizacija funkcije
00014 int gear=1;  // inicijalizacija varijable
00015 int brzinaOkretaja=0; // inicijalizacija varijable
00016 
00017 void redBlink()
00018 {
00019     redLED=!redLED;
00020 
00021 }
00022 
00023 //Funkcija za upozorenje kada je idealno za promijeniti brzinu
00024 void Upozorenje()
00025 {
00026     if(brzinaOkretaja>=4500 && brzinaOkretaja < 5500) {
00027         greenLED=1;
00028         yellowLED=0;
00029         redLED=0;
00030     } else if(brzinaOkretaja>=5500 && brzinaOkretaja < 7000) {
00031         greenLED=1;
00032         yellowLED=1;
00033         redLED=0;
00034     } else if(brzinaOkretaja>=6500 && brzinaOkretaja < 7500) {
00035         greenLED=1;
00036         yellowLED=1;
00037         redLED=1;
00038     } else if(brzinaOkretaja<4500 || brzinaOkretaja>=9000){
00039         greenLED=0;
00040         yellowLED=0;
00041         redLED=0;
00042         }    
00043     return;
00044 }
00045 
00046 int main()   //Glavni program
00047 {
00048     debounce.start();
00049     SegInit(); // Pozivanje funkcije za inicijalizaciju 7 seg. displaya
00050     while (brzinaOkretaja <= 9000 && gear <=6) { // infinite loop
00051         //brzina=(Ain/3.3)*9000;
00052         brzinaOkretaja = brzinaOkretaja + 100;
00053         pc.printf("Brzina okretaja: %d\n\r", brzinaOkretaja); // Ispis trenutne brzine okretaja
00054         wait(0.15);
00055         button1.rise(&toggle); // Prebacivanje u višu brzinu
00056         button2.rise(&toggle2); // Prebacivanje u nižu brzinu
00057         Upozorenje();
00058         Seg1 = SegConvert(gear); // Pozivanje funkcije za ispis na 7 seg. displayu
00059     }
00060     blink.attach(&redBlink, 0.25); // Blinkanje ledice pomoću tickera
00061     pc.printf("Zakucali ste motor u blokadu, auto se gasi!!!");
00062     wait(5);
00063     blink.detach();
00064 }
00065 
00066 //Interrupt za prebaciti u višu brzini
00067 void toggle()
00068 {
00069     if (debounce.read_ms()>200) { // only allow toggle if debounce timer
00070         gear=gear+1; // has passed 200 ms
00071         brzinaOkretaja=brzinaOkretaja-3000;
00072     }
00073     debounce.reset(); // restart timer when the toggle is performed
00074 }
00075 
00076 //Interrupt za prebaciti u nizu brzinu
00077 void toggle2()
00078 {
00079     if (debounce.read_ms()>200){
00080         gear=gear-1; // 
00081         brzinaOkretaja=brzinaOkretaja+1500;
00082     }
00083     debounce.reset();
00084 }
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093