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.
main.cpp
00001 /* 00002 Author: foreste 00003 Program name: control led action 00004 Platform test hardware: Stm32f0RB and Atnel.pl ATB 1,04A 00005 Forum: http://microgeek.eu/ 00006 */ 00007 00008 #include "mbed.h" 00009 00010 //Settings Uart 00011 Serial rs232(USBTX, USBRX); 00012 00013 //Setting pins 00014 DigitalOut led[8] {PC_3, PC_2, PA_1, PA_0, PA_15, PC_12, PC_13, PB_7}; 00015 00016 //Delay no blocking program 00017 Timer delay; 00018 00019 char user_input = 0; //user variable 00020 00021 //fuction replace state pin in High 00022 void ledintilize() 00023 { 00024 for(int x=0; x<8; x++) { 00025 led[x] = 1; 00026 } 00027 } 00028 00029 //fuction replace state pin in High special method 00030 void pin_clear_state() 00031 { 00032 led[0] = led[1] = led[2] = led[3] = led[4] = led[5] = led[6] = led[7] = 1; 00033 } 00034 //first method flashing knight 00035 void led_knight() 00036 { 00037 switch(delay.read_ms()) { 00038 case 500: 00039 pin_clear_state(); 00040 led[0] = 0; 00041 break; 00042 case 1000: 00043 led[0] = 1; 00044 led[1] = 0; 00045 break; 00046 case 1500: 00047 led[1] = 1; 00048 led[2] = 0; 00049 break; 00050 case 2000: 00051 led[2] = 1; 00052 led[3] = 0; 00053 break; 00054 case 2500: 00055 led[3] = 1; 00056 led[4] = 0; 00057 break; 00058 case 3000: 00059 led[4] = 1; 00060 led[5] = 0; 00061 break; 00062 case 3500: 00063 led[5] = 1; 00064 led[6] = 0; 00065 break; 00066 case 4000: 00067 led[6] = 1; 00068 led[7] = 0; 00069 break; 00070 case 4500: 00071 led[7] = 1; 00072 delay.reset(); 00073 break; 00074 } 00075 } 00076 // second method flashing knight 00077 void led_knight2() 00078 { 00079 switch(delay.read_ms()) { 00080 case 500: 00081 pin_clear_state(); 00082 led[0] = 0; 00083 break; 00084 case 1000: 00085 led[0] = 1; 00086 led[1] = 0; 00087 break; 00088 case 1500: 00089 led[1] = 1; 00090 led[2] = 0; 00091 break; 00092 case 2000: 00093 led[2] = 1; 00094 led[3] = 0; 00095 break; 00096 case 2500: 00097 led[3] = 1; 00098 led[4] = 0; 00099 break; 00100 case 3000: 00101 led[4] = 1; 00102 led[5] = 0; 00103 break; 00104 case 3500: 00105 led[5] = 1; 00106 led[6] = 0; 00107 break; 00108 case 4000: 00109 led[6] = 1; 00110 led[7] = 0; 00111 break; 00112 case 4500: 00113 led[7] = 1; 00114 break; 00115 00116 case 5000: 00117 led[7] = 1; 00118 led[6] = 0; 00119 break; 00120 case 5500: 00121 led[6] = 1; 00122 led[5] = 0; 00123 break; 00124 case 6000: 00125 led[5] = 1; 00126 led[4] = 0; 00127 break; 00128 case 6500: 00129 led[4] = 1; 00130 led[3] = 0; 00131 break; 00132 case 7000: 00133 led[3] = 1; 00134 led[2] = 0; 00135 break; 00136 case 7500: 00137 led[2] = 1; 00138 led[1] = 0; 00139 break; 00140 case 8000: 00141 led[1] = 1; 00142 led[0] = 0; 00143 break; 00144 case 8500: 00145 led[0] = 1; 00146 delay.reset(); 00147 break; 00148 } 00149 00150 } 00151 00152 //Third method flashing knight 00153 void knight3() 00154 { 00155 switch(delay.read_ms()) { 00156 case 500: 00157 pin_clear_state(); 00158 // led[7] = 1; 00159 led[6] = 0; 00160 break; 00161 case 1000: 00162 led[6] = 1; 00163 led[5] = 0; 00164 break; 00165 case 1500: 00166 led[5] = 1; 00167 led[4] = 0; 00168 break; 00169 case 2000: 00170 led[4] = 1; 00171 led[3] = 0; 00172 break; 00173 case 25000: 00174 led[3] = 1; 00175 led[2] = 0; 00176 break; 00177 case 3000: 00178 led[2] = 1; 00179 led[1] = 0; 00180 break; 00181 case 35000: 00182 led[1] = 1; 00183 led[0] = 0; 00184 break; 00185 case 4000: 00186 led[0] = 1; 00187 delay.reset(); 00188 break; 00189 } 00190 } 00191 //first method flashing Police sirens 00192 void police_light() 00193 { 00194 if(delay.read_ms() >= 200) { 00195 pin_clear_state(); 00196 led[0] = led[1] = led[2] = led[3] = 0; 00197 if(delay.read_ms() >= 400) { 00198 led[0] = led[1] = led[2] = led[3] = 1; 00199 led[4] = led[5] = led[6] = led[7] = 0; 00200 delay.reset(); 00201 } 00202 } 00203 } 00204 00205 //Second method flashing Police sirens 00206 void police_light2() 00207 { 00208 if(delay.read_ms() >= 200) { 00209 pin_clear_state(); 00210 led[0] = led[2] = led[4] = led[6] = 0; 00211 if(delay.read_ms() >= 400) { 00212 led[0] = led[2] = led[4] = led[6] = 1; 00213 led[1] = led[3] = led[5] = led[7] = 0; 00214 delay.reset(); 00215 } 00216 } 00217 } 00218 00219 00220 //Fuction interruption uart 00221 void rs232in() 00222 { 00223 if(rs232.readable()) { 00224 user_input = rs232.getc(); 00225 } 00226 } 00227 int main() 00228 { 00229 ledintilize(); //fuction replace state pin in High 00230 rs232.attach(&rs232in); //Fuction interruption uart 00231 00232 while(1) { 00233 00234 00235 //Select mode flash light for user 00236 switch(user_input) { 00237 00238 00239 case '1': 00240 00241 delay.start(); 00242 led_knight(); 00243 break; 00244 case '2': 00245 00246 delay.start(); 00247 led_knight2(); 00248 break; 00249 00250 case '3': 00251 delay.start(); 00252 knight3(); 00253 break; 00254 00255 case '4': 00256 delay.start(); 00257 police_light(); 00258 break; 00259 00260 case '5': 00261 delay.start(); 00262 police_light2(); 00263 break; 00264 00265 } 00266 } 00267 }
Generated on Wed Jul 13 2022 02:12:31 by
1.7.2