Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
00001 #include "mbed.h" 00002 00003 Ticker osvjezavanje; 00004 Serial pc(USBTX, USBRX); 00005 DigitalOut trig (p29); 00006 DigitalIn echo (p30); 00007 PwmOut led(p21); 00008 int alarm; 00009 BusInOut inputSW(p24, p25, p26, p27); 00010 DigitalOut Dis1(p19); 00011 DigitalOut Dis2(p20); 00012 BusOut Seg(p5,p6,p7,p8,p9,p10,p11,p12); 00013 int prikaz; 00014 int Znak1; 00015 int Znak2; 00016 int brojac; 00017 Timer tmr; 00018 double pulsedur, distance; 00019 char SegConvert(char SegValue); 00020 void displays(); 00021 00022 int main() 00023 { 00024 inputSW.mode(PullUp); 00025 led.period(0.001); 00026 osvjezavanje.attach(&displays, 0.005); 00027 while(1) { 00028 tmr.reset(); 00029 trig = 1; 00030 wait_us(10); 00031 trig = 0; 00032 00033 while (!echo); 00034 tmr.start(); 00035 00036 while (echo); 00037 tmr.stop(); 00038 00039 pulsedur = tmr.read_us(); 00040 distance = pulsedur/58; 00041 pc.printf("pulsedur=%8.2f\n\r", distance); 00042 switch(inputSW) { 00043 case 0x1: 00044 alarm=4; 00045 break; 00046 case 0x2: 00047 alarm=6; 00048 break; 00049 case 0x3: 00050 alarm=8; 00051 break; 00052 case 0x4: 00053 alarm=10; 00054 break; 00055 case 0x5: 00056 alarm=12; 00057 break; 00058 case 0x6: 00059 alarm=14; 00060 break; 00061 case 0x7: 00062 alarm=16; 00063 break; 00064 case 0x8: 00065 alarm=18; 00066 break; 00067 case 0x9: 00068 alarm=20; 00069 break; 00070 case 0xA: 00071 alarm=22; 00072 break; 00073 case 0xB: 00074 alarm=24; 00075 break; 00076 case 0xC: 00077 alarm=26; 00078 break; 00079 case 0xD: 00080 alarm=28; 00081 break; 00082 case 0xE: 00083 alarm=30; 00084 break; 00085 case 0xF: 00086 alarm=32; 00087 break; 00088 default : 00089 alarm=2; 00090 } 00091 if (alarm>distance) { 00092 led=0.5; 00093 } else { 00094 led=0.0; 00095 } 00096 prikaz = distance*100; 00097 Znak1 = prikaz/1000; 00098 Znak2 = (prikaz/100)%10; 00099 wait(0.5); 00100 } 00101 } 00102 00103 void displays(){ 00104 switch (++brojac) { 00105 case 1: 00106 Dis1=1; 00107 Dis2=0; 00108 Seg=SegConvert(Znak1); 00109 break; 00110 case 2: 00111 Dis1=0; 00112 Dis2=1; 00113 Seg=SegConvert(Znak2); 00114 brojac=0; 00115 break; 00116 } 00117 } 00118 00119 char SegConvert(char SegValue){ 00120 char SegByte=0x00; 00121 switch (SegValue) { 00122 case 0 : 00123 SegByte = 0x3F; 00124 break; 00125 case 1 : 00126 SegByte = 0x06; 00127 break; 00128 case 2 : 00129 SegByte = 0x5B; 00130 break; 00131 case 3 : 00132 SegByte = 0x4F; 00133 break; 00134 case 4 : 00135 SegByte = 0x66; 00136 break; 00137 case 5 : 00138 SegByte = 0x6D; 00139 break; 00140 case 6 : 00141 SegByte = 0x7D; 00142 break; 00143 case 7 : 00144 SegByte = 0x07; 00145 break; 00146 case 8 : 00147 SegByte = 0x7F; 00148 break; 00149 case 9 : 00150 SegByte = 0x6F; 00151 break; 00152 } 00153 return SegByte; 00154 }
Generated on Tue Jul 26 2022 16:44:14 by
1.7.2