Bartek Wereszczyński / Mbed 2 deprecated control_led_action

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }