Andrija Mijailovic 2020/0388
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Sun Aug 21 2022 04:29:22 by
1.7.2