Masa Kovacevic 2020/0229
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 /* Masa Kovacevic 00002 * 2020/0229 00003 * ETF Beograd 00004 */ 00005 00006 00007 00008 // Uvoz biblioteka 00009 #include "mbed.h" 00010 00011 00012 00013 // Definisanje makroa 00014 #define SCALE 2900 00015 #define WAIT 2 00016 00017 00018 //Globalne promenljive 00019 AnalogIn pot2(PA_1); 00020 AnalogIn pot1(PA_0); 00021 PwmOut buzz(PA_11); 00022 int sound_intensity; 00023 int sound_intensity_first_digit; 00024 int sound_intensity_second_digit; 00025 InterruptIn sw1(PC_9); 00026 DigitalOut SEL2(PC_7); 00027 DigitalOut SEL1(PB_6); 00028 DigitalIn SW1(PC_9); 00029 BusOut display(PA_10,PA_9,PA_8,PB_10,PB_5,PB_4,PB_3,PA_5); 00030 00031 00032 //Prototipi funkcija 00033 void ISR_sw1(void); 00034 void Funkcija2 (int second_digit); 00035 void Funkcija1 (int first_digit); 00036 int convert (int digit); 00037 00038 00039 00040 //Glavna funkcija 00041 int main() 00042 { 00043 sw1.fall(&ISR_sw1); 00044 while(1) 00045 { 00046 buzz.period_us(pot1.read()*SCALE + 100); 00047 buzz.write(pot2.read()); 00048 wait_ms(WAIT); 00049 sound_intensity = pot2.read()*100; 00050 sound_intensity_first_digit = sound_intensity/10; 00051 sound_intensity_second_digit = sound_intensity%10; 00052 00053 } 00054 } 00055 00056 void Funkcija2 (int second_digit){ 00057 00058 SEL2.write(0); 00059 display = convert(second_digit); 00060 wait_ms(20); 00061 SEL2.write(1); 00062 00063 } 00064 00065 00066 void Funkcija1 (int first_digit){ 00067 00068 SEL1.write(0); 00069 display = convert(first_digit); 00070 wait_ms(20); 00071 SEL1.write(1); 00072 } 00073 00074 int convert (int digit) { 00075 00076 int d; 00077 00078 switch(digit) { 00079 case 0 : 00080 d = 0xC0; 00081 break; 00082 case 1: 00083 d = 0xF9; 00084 case 2 : 00085 d = 0xA4; 00086 break; 00087 case 3 : 00088 d= 0xB0; 00089 break; 00090 case 4 : 00091 d = 0x99; 00092 break; 00093 case 5 : 00094 d = 0x92; 00095 break; 00096 case 6 : 00097 d = 0x82; 00098 break; 00099 case 7 : 00100 d = 0xF8; 00101 break; 00102 case 8 : 00103 d = 0x80; 00104 break; 00105 case 9 : 00106 d = 0x90; 00107 break; 00108 } 00109 00110 return d; 00111 } 00112 void ISR_sw1() 00113 { 00114 if (sound_intensity_first_digit != 0) 00115 { 00116 Funkcija1(sound_intensity_first_digit); 00117 Funkcija2(sound_intensity_first_digit); 00118 } 00119 else 00120 { 00121 Funkcija2(sound_intensity_first_digit); 00122 } 00123 }
Generated on Mon Feb 13 2023 16:02:04 by
1.7.2