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.
Dependencies: mbed
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
Generated on Wed Jul 13 2022 11:32:47 by
