Miroljub Micic 514/2018

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Bonus 3: Prikazana vrednost na displeju odgovara glasnoci koju mozemo cuti, ali ne odgovara frekvenciji. Frekvencija se podesava sa POT2.
00002 
00003 //Sekcija za uvoz biblioteka
00004 #include "mbed.h"
00005 
00006 //Definisanje direktiva
00007 #define ukljucen 0
00008 #define iskljucen 1
00009 
00010 //Glavne promenljive
00011 AnalogIn POT1 (PA_0); //potenciometar jacina zvuka
00012 AnalogIn POT2 (PA_1); //potenciometar frekvencija zvuka
00013 InterruptIn SW1 (PC_9); //taster
00014 PwmOut zujalica (PA_11); //zujalica
00015 DigitalOut SEL1 (PB_6); //levi displej
00016 DigitalOut SEL2 (PC_7); //desni displej
00017 DigitalOut a (PA_10);
00018 DigitalOut b (PA_9);
00019 DigitalOut c (PA_8);
00020 DigitalOut d (PB_10);
00021 DigitalOut e (PB_5);
00022 DigitalOut f (PB_4);
00023 DigitalOut g (PB_3);
00024 
00025 void ISR_SW1(void);
00026 
00027 //Glavna funkcija
00028 int main()
00029 {
00030     SW1.fall(&ISR_SW1);
00031     while (true)
00032     {
00033         zujalica.period_us((POT2.read()*5000)); //Okretanjem POT2 frekvencija (50 - 5000 us) (20kHz - 200Hz)
00034         zujalica.write(1-POT1.read()); //Okretanjem POT1 jacina zvuka
00035         SEL1.write(iskljucen);
00036         SEL2.write(iskljucen);
00037         //Na pritisak tastera ispisuje se trenutna vrednost POT1
00038         if (!SW1)
00039         {
00040             if (POT1.read()==0)
00041             {
00042                 //Ispisi 0
00043                 SEL1.write(iskljucen); //iskljucen prvi displej
00044                 SEL2.write(iskljucen); //iskljucen drugi displej 
00045                 wait_ms(10);
00046                 SEL1.write(iskljucen); //iskljucen prvi displej 
00047                 SEL2.write(ukljucen); //ukljucen drugi displej
00048                 //Ispis 0 na desnom ekranu
00049                 a.write(ukljucen);
00050                 b.write(ukljucen);
00051                 c.write(ukljucen);
00052                 d.write(ukljucen);
00053                 e.write(ukljucen);
00054                 f.write(ukljucen);
00055                 g.write(iskljucen);  
00056             }
00057             if ((POT1.read()>0) && (POT1.read()<=0.1))
00058             {
00059                 //Ispisi 10
00060                 //Ispis 1 na levom ekranu
00061                 SEL1.write(ukljucen); //ukljucen prvi displej
00062                 SEL2.write(iskljucen); //iskljucen drugi displej
00063                 a.write(iskljucen);
00064                 b.write(ukljucen);
00065                 c.write(ukljucen);
00066                 d.write(iskljucen);
00067                 e.write(iskljucen);
00068                 f.write(iskljucen);
00069                 g.write(iskljucen);   
00070                 wait_ms(10);
00071                 SEL1.write(iskljucen); //iskljucen prvi displej 
00072                 SEL2.write(ukljucen); //ukljucen drugi displej
00073                 //Ispis 0 na desnom ekranu
00074                 a.write(ukljucen);
00075                 b.write(ukljucen);
00076                 c.write(ukljucen);
00077                 d.write(ukljucen);
00078                 e.write(ukljucen);
00079                 f.write(ukljucen);
00080                 g.write(iskljucen);  
00081             }
00082             if ((POT1.read()>0.1) && (POT1.read()<=0.2))
00083             {
00084                 //Ispisi 20
00085                 //Ispis 2 na levom ekranu
00086                 SEL1.write(ukljucen); //ukljucen prvi displej
00087                 SEL2.write(iskljucen); //iskljucen drugi displej
00088                 a.write(ukljucen);
00089                 b.write(ukljucen);
00090                 c.write(iskljucen);
00091                 d.write(ukljucen);
00092                 e.write(ukljucen);
00093                 f.write(iskljucen);
00094                 g.write(ukljucen);   
00095                 wait_ms(10);
00096                 SEL1.write(iskljucen); //iskljucen prvi displej 
00097                 SEL2.write(ukljucen); //ukljucen drugi displej
00098                 //Ispis 0 na desnom ekranu
00099                 a.write(ukljucen);
00100                 b.write(ukljucen);
00101                 c.write(ukljucen);
00102                 d.write(ukljucen);
00103                 e.write(ukljucen);
00104                 f.write(ukljucen);
00105                 g.write(iskljucen);  
00106             }
00107             if ((POT1.read()>0.2) && (POT1.read()<=0.3))
00108             {
00109                 //Ispisi 30
00110                 //Ispis 3 na levom ekranu
00111                 SEL1.write(ukljucen); //ukljucen prvi displej
00112                 SEL2.write(iskljucen); //iskljucen drugi displej
00113                 a.write(ukljucen);
00114                 b.write(ukljucen);
00115                 c.write(ukljucen);
00116                 d.write(ukljucen);
00117                 e.write(iskljucen);
00118                 f.write(iskljucen);
00119                 g.write(ukljucen);   
00120                 wait_ms(10);
00121                 SEL1.write(iskljucen); //iskljucen prvi displej 
00122                 SEL2.write(ukljucen); //ukljucen drugi displej
00123                 //Ispis 0 na desnom ekranu
00124                 a.write(ukljucen);
00125                 b.write(ukljucen);
00126                 c.write(ukljucen);
00127                 d.write(ukljucen);
00128                 e.write(ukljucen);
00129                 f.write(ukljucen);
00130                 g.write(iskljucen);  
00131             }
00132             if ((POT1.read()>0.3) && (POT1.read()<=0.4))
00133             {
00134                 //Ispisi 40
00135                 //Ispis 4 na levom ekranu
00136                 SEL1.write(ukljucen); //ukljucen prvi displej
00137                 SEL2.write(iskljucen); //iskljucen drugi displej
00138                 a.write(iskljucen);
00139                 b.write(ukljucen);
00140                 c.write(ukljucen);
00141                 d.write(iskljucen);
00142                 e.write(iskljucen);
00143                 f.write(ukljucen);
00144                 g.write(ukljucen);   
00145                 wait_ms(10);
00146                 SEL1.write(iskljucen); //iskljucen prvi displej 
00147                 SEL2.write(ukljucen); //ukljucen drugi displej
00148                 //Ispis 0 na desnom ekranu
00149                 a.write(ukljucen);
00150                 b.write(ukljucen);
00151                 c.write(ukljucen);
00152                 d.write(ukljucen);
00153                 e.write(ukljucen);
00154                 f.write(ukljucen);
00155                 g.write(iskljucen);  
00156             }
00157             if ((POT1.read()>0.4) && (POT1.read()<=0.5))
00158             {
00159                 //Ispisi 50
00160                 //Ispis 5 na levom ekranu
00161                 SEL1.write(ukljucen); //ukljucen prvi displej
00162                 SEL2.write(iskljucen); //iskljucen drugi displej
00163                 a.write(ukljucen);
00164                 b.write(iskljucen);
00165                 c.write(ukljucen);
00166                 d.write(ukljucen);
00167                 e.write(iskljucen);
00168                 f.write(ukljucen);
00169                 g.write(ukljucen);   
00170                 wait_ms(10);
00171                 SEL1.write(iskljucen); //iskljucen prvi displej 
00172                 SEL2.write(ukljucen); //ukljucen drugi displej
00173                 //Ispis 0 na desnom ekranu
00174                 a.write(ukljucen);
00175                 b.write(ukljucen);
00176                 c.write(ukljucen);
00177                 d.write(ukljucen);
00178                 e.write(ukljucen);
00179                 f.write(ukljucen);
00180                 g.write(iskljucen);  
00181             }
00182             if ((POT1.read()>0.5) && (POT1.read()<=0.6))
00183             {
00184                 //Ispisi 60
00185                 //Ispis 6 na levom ekranu
00186                 SEL1.write(ukljucen); //ukljucen prvi displej
00187                 SEL2.write(iskljucen); //iskljucen drugi displej
00188                 a.write(ukljucen);
00189                 b.write(iskljucen);
00190                 c.write(ukljucen);
00191                 d.write(ukljucen);
00192                 e.write(ukljucen);
00193                 f.write(ukljucen);
00194                 g.write(ukljucen);   
00195                 wait_ms(10);
00196                 SEL1.write(iskljucen); //iskljucen prvi displej 
00197                 SEL2.write(ukljucen); //ukljucen drugi displej
00198                 //Ispis 0 na desnom ekranu
00199                 a.write(ukljucen);
00200                 b.write(ukljucen);
00201                 c.write(ukljucen);
00202                 d.write(ukljucen);
00203                 e.write(ukljucen);
00204                 f.write(ukljucen);
00205                 g.write(iskljucen);  
00206             }
00207             if ((POT1.read()>0.6) && (POT1.read()<=0.7))
00208             {
00209                 //Ispisi 70
00210                 //Ispis 7 na levom ekranu
00211                 SEL1.write(ukljucen); //ukljucen prvi displej
00212                 SEL2.write(iskljucen); //iskljucen drugi displej
00213                 a.write(ukljucen);
00214                 b.write(ukljucen);
00215                 c.write(ukljucen);
00216                 d.write(iskljucen);
00217                 e.write(iskljucen);
00218                 f.write(iskljucen);
00219                 g.write(iskljucen);   
00220                 wait_ms(10);
00221                 SEL1.write(iskljucen); //iskljucen prvi displej 
00222                 SEL2.write(ukljucen); //ukljucen drugi displej
00223                 //Ispis 0 na desnom ekranu
00224                 a.write(ukljucen);
00225                 b.write(ukljucen);
00226                 c.write(ukljucen);
00227                 d.write(ukljucen);
00228                 e.write(ukljucen);
00229                 f.write(ukljucen);
00230                 g.write(iskljucen);  
00231             }
00232             if ((POT1.read()>0.7) && (POT1.read()<=0.8))
00233             {
00234                 //Ispisi 80
00235                 //Ispis 8 na levom ekranu
00236                 SEL1.write(ukljucen); //ukljucen prvi displej
00237                 SEL2.write(iskljucen); //iskljucen drugi displej
00238                 a.write(ukljucen);
00239                 b.write(ukljucen);
00240                 c.write(ukljucen);
00241                 d.write(ukljucen);
00242                 e.write(ukljucen);
00243                 f.write(ukljucen);
00244                 g.write(ukljucen);   
00245                 wait_ms(10);
00246                 SEL1.write(iskljucen); //iskljucen prvi displej 
00247                 SEL2.write(ukljucen); //ukljucen drugi displej
00248                 //Ispis 0 na desnom ekranu
00249                 a.write(ukljucen);
00250                 b.write(ukljucen);
00251                 c.write(ukljucen);
00252                 d.write(ukljucen);
00253                 e.write(ukljucen);
00254                 f.write(ukljucen);
00255                 g.write(iskljucen);  
00256             }
00257             if ((POT1.read()>0.8) && (POT1.read()<=0.9))
00258             {
00259                 //Ispisi 90
00260                 //Ispis 9 na levom ekranu
00261                 SEL1.write(ukljucen); //ukljucen prvi displej
00262                 SEL2.write(iskljucen); //iskljucen drugi displej
00263                 a.write(ukljucen);
00264                 b.write(ukljucen);
00265                 c.write(ukljucen);
00266                 d.write(ukljucen);
00267                 e.write(iskljucen);
00268                 f.write(ukljucen);
00269                 g.write(ukljucen);   
00270                 wait_ms(10);
00271                 SEL1.write(iskljucen); //iskljucen prvi displej 
00272                 SEL2.write(ukljucen); //ukljucen drugi displej
00273                 //Ispis 0 na desnom ekranu
00274                 a.write(ukljucen);
00275                 b.write(ukljucen);
00276                 c.write(ukljucen);
00277                 d.write(ukljucen);
00278                 e.write(ukljucen);
00279                 f.write(ukljucen);
00280                 g.write(iskljucen);  
00281             }
00282             if ((POT1.read()>0.9) && (POT1.read()<=1))
00283             {
00284                 //Ispisi 99
00285                 //Ispis 9 na levom ekranu
00286                 SEL1.write(ukljucen); //ukljucen prvi displej
00287                 SEL2.write(iskljucen); //iskljucen drugi displej
00288                 a.write(ukljucen);
00289                 b.write(ukljucen);
00290                 c.write(ukljucen);
00291                 d.write(ukljucen);
00292                 e.write(iskljucen);
00293                 f.write(ukljucen);
00294                 g.write(ukljucen);   
00295                 wait_ms(10);
00296                 SEL1.write(iskljucen); //iskljucen prvi displej 
00297                 SEL2.write(ukljucen); //ukljucen drugi displej
00298                 //Ispis 9 na desnom ekranu
00299                 a.write(ukljucen);
00300                 b.write(ukljucen);
00301                 c.write(ukljucen);
00302                 d.write(ukljucen);
00303                 e.write(iskljucen);
00304                 f.write(ukljucen);
00305                 g.write(ukljucen); 
00306             }
00307         }
00308         wait_ms(10);    
00309     }
00310 }
00311 
00312 //Korisnicke funkcije
00313 void ISR_SW1()
00314 {
00315     
00316 }