Andrija Mijailovic 2020/0388

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002  * Biblioteke za uvoz:
00003  */
00004 #include "mbed.h"
00005 
00006 /*
00007  * Definisanje makroa:
00008  */
00009  
00010 #define PERIOD 100
00011 #define DUTY_CYCLE 0.75f
00012 #define ZERO 64
00013 #define ONE 121
00014 #define TWO 36
00015 #define THREE 48
00016 #define FOUR 25
00017 #define FIVE 18
00018 #define SIX 2
00019 #define SEVEN 120
00020 #define EIGHT 0
00021 #define NINE 16
00022 /*
00023  * Globalne promenljive:
00024  */
00025  
00026 PwmOut buzz(PA_11);
00027 AnalogIn pot1(PA_0);
00028 AnalogIn pot2(PA_1);
00029 InterruptIn sw1(PC_9);
00030 DigitalOut sel1(PB_6);
00031 DigitalOut sel2(PC_7);
00032 BusOut display(PA_10,PA_9,PA_8,PB_10,PB_5,PB_4,PB_3);
00033 static int update=0;
00034 static float br=0;
00035 /*
00036  * Deklaracija funkcija:
00037  */
00038 
00039 void ISR_sw1(void);
00040 void screen(int percent);
00041 /*
00042  * Glavna funkcija:
00043  */
00044 int main()
00045 {
00046     sw1.fall(&ISR_sw1);
00047     while(true)
00048     {
00049         
00050         buzz.period(pot2.read()/200+0.00005);
00051         buzz.write(pot1.read());
00052         screen((int)br);
00053         wait_ms(4);
00054     }    
00055 }
00056 
00057 
00058 /*
00059  * Definicija funkcija:
00060  */
00061  void screen(int percent){
00062      
00063      switch(percent-percent/10*10){
00064             case 0:
00065                 sel1.write(1);
00066                 sel2.write(0);
00067                 display.write(ZERO);
00068                 break;
00069             case 1:
00070                 sel1.write(1);
00071                 sel2.write(0);
00072                 display.write(ONE);
00073                 break;
00074             case 2:
00075                 sel1.write(1);
00076                 sel2.write(0);
00077                 display.write(TWO);
00078                 break;
00079             case 3:
00080                 sel1.write(1);
00081                 sel2.write(0);
00082                 display.write(THREE);
00083                 break;
00084             case 4:
00085                 sel1.write(1);
00086                 sel2.write(0);
00087                 display.write(FOUR);
00088                 break;
00089             case 5:
00090                 sel1.write(1);
00091                 sel2.write(0);
00092                 display.write(FIVE);
00093                 break;
00094             case 6:
00095                 sel1.write(1);
00096                 sel2.write(0);
00097                 display.write(SIX);
00098                 break;
00099             case 7:
00100                 sel1.write(1);
00101                 sel2.write(0);
00102                 display.write(SEVEN);
00103                 break;
00104             case 8:
00105                 sel1.write(1);
00106                 sel2.write(0);
00107                 display.write(EIGHT);
00108                 break;
00109             case 9:
00110                 sel1.write(1);
00111                 sel2.write(0);
00112                 display.write(NINE);
00113                 break;
00114      }
00115      wait_ms(8);
00116     switch(percent/10){
00117             case 0:
00118                 break;
00119             case 1:
00120                 sel1.write(0);
00121                 sel2.write(1);
00122                 display.write(ONE);
00123                 break;
00124             case 2:
00125                 sel1.write(0);
00126                 sel2.write(1);
00127                 display.write(TWO);
00128                 break;
00129             case 3:
00130                 sel1.write(0);
00131                 sel2.write(1);
00132                 display.write(THREE);
00133                 break;
00134             case 4:
00135                 sel1.write(0);
00136                 sel2.write(1);
00137                 display.write(FOUR);
00138                 break;
00139             case 5:
00140                 sel1.write(0);
00141                 sel2.write(1);
00142                 display.write(FIVE);
00143                 break;
00144             case 6:
00145                 sel1.write(0);
00146                 sel2.write(1);
00147                 display.write(SIX);
00148                 break;
00149             case 7:
00150                 sel1.write(0);
00151                 sel2.write(1);
00152                 display.write(SEVEN);
00153                 break;
00154             case 8:
00155                 sel1.write(0);
00156                 sel2.write(1);
00157                 display.write(EIGHT);
00158                 break;
00159             case 9:
00160                 sel1.write(0);
00161                 sel2.write(1);
00162                 display.write(NINE);
00163                 break;
00164      }
00165      wait_ms(4);
00166      
00167      
00168 }
00169      
00170      
00171      
00172  void ISR_sw1(){
00173      br=pot1.read();
00174      }