Miroljub Micic 514/2018
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Fri Jul 29 2022 21:00:59 by
1.7.2