l

Dependencies:   mbed

Fork of Nucleo_serial_sf by PuG

Committer:
NamSom
Date:
Mon Oct 26 03:32:41 2015 +0000
Revision:
3:a46061896235
Parent:
2:e06d96952cef
Child:
4:eae42fe39107
Lab3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Peeraya 0:09e78c46c376 1 #include "mbed.h"
Peeraya 0:09e78c46c376 2
Peeraya 0:09e78c46c376 3 //------------------------------------
Peeraya 0:09e78c46c376 4 // Hyperterminal configuration
Peeraya 0:09e78c46c376 5 // 9600 bauds, 8-bit data, no parity
Peeraya 0:09e78c46c376 6 //------------------------------------
Peeraya 0:09e78c46c376 7
Peeraya 1:a3a6e8f878da 8 Serial pc(SERIAL_TX, SERIAL_RX);
Peeraya 0:09e78c46c376 9
Peeraya 0:09e78c46c376 10 DigitalOut myled0(D15);
Peeraya 0:09e78c46c376 11 DigitalOut myled1(D14);
Peeraya 0:09e78c46c376 12 DigitalOut myled2(D13);
Peeraya 0:09e78c46c376 13 DigitalOut myled3(D12);
Peeraya 0:09e78c46c376 14 DigitalOut myled4(D11);
Peeraya 0:09e78c46c376 15 DigitalOut myled5(D10);
Peeraya 0:09e78c46c376 16 DigitalOut myled6(D9);
Peeraya 0:09e78c46c376 17 DigitalOut myled7(D8);
Peeraya 0:09e78c46c376 18
Peeraya 0:09e78c46c376 19 DigitalIn inbutton(D3);
Peeraya 0:09e78c46c376 20
NamSom 3:a46061896235 21 int checkState()
NamSom 3:a46061896235 22 {
NamSom 3:a46061896235 23 data = pc.getc();
NamSom 3:a46061896235 24 if(data=='s'||data='S') return 1;
NamSom 3:a46061896235 25 else if(data=='a'||data='A') return 2;
NamSom 3:a46061896235 26 else (data=='d'||data='D') return 3;
NamSom 3:a46061896235 27 else return 0;
NamSom 3:a46061896235 28 }
NamSom 3:a46061896235 29
NamSom 3:a46061896235 30 void pattern1()
NamSom 3:a46061896235 31 {
NamSom 3:a46061896235 32 uint8_t check;
NamSom 3:a46061896235 33 while(1){
NamSom 3:a46061896235 34 myled0=1;
NamSom 3:a46061896235 35 wait(1);
NamSom 3:a46061896235 36 myled0=0;
NamSom 3:a46061896235 37 check=checkState();
NamSom 3:a46061896235 38 if(check==1) return 1;
NamSom 3:a46061896235 39 else if(check==3) break;
NamSom 3:a46061896235 40 myled1=1;
NamSom 3:a46061896235 41 wait(1);
NamSom 3:a46061896235 42 myled1=0;
NamSom 3:a46061896235 43 check=checkState();
NamSom 3:a46061896235 44 if(check==1) return 1;
NamSom 3:a46061896235 45 else if(check==3) break;
NamSom 3:a46061896235 46 myled2=1;
NamSom 3:a46061896235 47 wait(1);
NamSom 3:a46061896235 48 myled2=0;
NamSom 3:a46061896235 49 check=checkState();
NamSom 3:a46061896235 50 if(check==1) return 1;
NamSom 3:a46061896235 51 else if(check==3) break;
NamSom 3:a46061896235 52 myled3=1;
NamSom 3:a46061896235 53 wait(1);
NamSom 3:a46061896235 54 myled3=0;
NamSom 3:a46061896235 55 check=checkState();
NamSom 3:a46061896235 56 if(check==1) return 1;
NamSom 3:a46061896235 57 else if(check==3) break;
NamSom 3:a46061896235 58 myled4=1;
NamSom 3:a46061896235 59 wait(1);
NamSom 3:a46061896235 60 myled4=0;
NamSom 3:a46061896235 61 check=checkState();
NamSom 3:a46061896235 62 if(check==1) return 1;
NamSom 3:a46061896235 63 else if(check==3) break;
NamSom 3:a46061896235 64 myled5=1;
NamSom 3:a46061896235 65 wait(1);
NamSom 3:a46061896235 66 myled5=0;
NamSom 3:a46061896235 67 check=checkState();
NamSom 3:a46061896235 68 if(check==1) return 1;
NamSom 3:a46061896235 69 else if(check==3) break;
NamSom 3:a46061896235 70 myled6=1;
NamSom 3:a46061896235 71 wait(1);
NamSom 3:a46061896235 72 myled6=0;
NamSom 3:a46061896235 73 check=checkState();
NamSom 3:a46061896235 74 if(check==1) return 1;
NamSom 3:a46061896235 75 else if(check==3) break;
NamSom 3:a46061896235 76 myled7=1;
NamSom 3:a46061896235 77 wait(1);
NamSom 3:a46061896235 78 myled7=0;
NamSom 3:a46061896235 79 check=checkState();
NamSom 3:a46061896235 80 if(check==1) return 1;
NamSom 3:a46061896235 81 else if(check==3) break;
NamSom 3:a46061896235 82 }
NamSom 3:a46061896235 83 pattern2();
NamSom 3:a46061896235 84 }
NamSom 3:a46061896235 85
NamSom 3:a46061896235 86 void pattern2()
NamSom 3:a46061896235 87 {
NamSom 3:a46061896235 88 uint8_t check;
NamSom 3:a46061896235 89 while(1) {
NamSom 3:a46061896235 90 myled0 =1;
NamSom 3:a46061896235 91 myled1 =1;
NamSom 3:a46061896235 92 myled4 =1;
NamSom 3:a46061896235 93 myled5 =1;
NamSom 3:a46061896235 94 wait(1);
NamSom 3:a46061896235 95 myled0 =0;
NamSom 3:a46061896235 96 myled1 =0;
NamSom 3:a46061896235 97 myled4 =0;
NamSom 3:a46061896235 98 myled5 =0;
NamSom 3:a46061896235 99 check=checkState();
NamSom 3:a46061896235 100 if(check==1) return 1;
NamSom 3:a46061896235 101 else if(check==3) break;
NamSom 3:a46061896235 102 myled2 =1;
NamSom 3:a46061896235 103 myled3 =1;
NamSom 3:a46061896235 104 myled6 =1;
NamSom 3:a46061896235 105 myled7 =1;
NamSom 3:a46061896235 106 wait(1);
NamSom 3:a46061896235 107 myled2 =0;
NamSom 3:a46061896235 108 myled3 =0;
NamSom 3:a46061896235 109 myled6 =0;
NamSom 3:a46061896235 110 myled7 =0;
NamSom 3:a46061896235 111 check=checkState();
NamSom 3:a46061896235 112 if(check==1) return 1;
NamSom 3:a46061896235 113 else if(check==3) break;
NamSom 3:a46061896235 114 }
NamSom 3:a46061896235 115 pattern1();
NamSom 3:a46061896235 116 }
NamSom 3:a46061896235 117
Peeraya 0:09e78c46c376 118
Peeraya 0:09e78c46c376 119 int main()
Peeraya 0:09e78c46c376 120 {
Peeraya 0:09e78c46c376 121
Peeraya 0:09e78c46c376 122 uint8_t state_menu=0;
Peeraya 0:09e78c46c376 123 uint8_t state_show=0;
Peeraya 0:09e78c46c376 124 uint8_t state_exit =0;
NamSom 3:a46061896235 125 uint8_t state_LED =0;
Peeraya 0:09e78c46c376 126 uint8_t data;
Peeraya 0:09e78c46c376 127
NamSom 3:a46061896235 128 myled0 = 0;
NamSom 3:a46061896235 129 myled1 = 0;
NamSom 3:a46061896235 130 myled2 = 0;
NamSom 3:a46061896235 131 myled3 = 0;
NamSom 3:a46061896235 132 myled4 = 0;
NamSom 3:a46061896235 133 myled5 = 0;
NamSom 3:a46061896235 134 myled6 = 0;
NamSom 3:a46061896235 135 myled7 = 0;
Peeraya 0:09e78c46c376 136 pc.printf("Select Mode\n");
Peeraya 0:09e78c46c376 137 while(1) {
Peeraya 0:09e78c46c376 138 if(state_show == 0) {
Peeraya 0:09e78c46c376 139 pc.printf("Menu\n");
Peeraya 0:09e78c46c376 140 pc.printf("1.Choose LED pattern\n");
Peeraya 0:09e78c46c376 141 pc.printf("2.Print status\n");
Peeraya 0:09e78c46c376 142 state_show =1;
Peeraya 0:09e78c46c376 143 }
Peeraya 0:09e78c46c376 144 if(pc.readable()) {
Peeraya 0:09e78c46c376 145 data = pc.getc();
Peeraya 0:09e78c46c376 146 pc.printf("\n");
Peeraya 0:09e78c46c376 147 state_show =0;
Peeraya 0:09e78c46c376 148 state_exit =0;
Peeraya 0:09e78c46c376 149
Peeraya 0:09e78c46c376 150 switch(data) {
Peeraya 0:09e78c46c376 151 case '1':
Peeraya 0:09e78c46c376 152 do {
Peeraya 0:09e78c46c376 153 if(state_menu == 0) {
Peeraya 0:09e78c46c376 154 pc.printf("Choose LED pattern\n");
Peeraya 0:09e78c46c376 155 pc.printf("a.Pattern1\n");
Peeraya 0:09e78c46c376 156 pc.printf("d.Pattern2\n");
Peeraya 0:09e78c46c376 157 pc.printf("s.Exit\n");
Peeraya 0:09e78c46c376 158 state_menu = 1;
Peeraya 0:09e78c46c376 159 }
Peeraya 0:09e78c46c376 160 if(pc.readable()) {
Peeraya 0:09e78c46c376 161 data = pc.getc();
Peeraya 0:09e78c46c376 162 pc.printf("\n");
Peeraya 0:09e78c46c376 163 state_menu=0;
Peeraya 0:09e78c46c376 164
NamSom 3:a46061896235 165 if(data=='a'||data='A') {
NamSom 3:a46061896235 166 pattern1();
Peeraya 0:09e78c46c376 167 }
NamSom 3:a46061896235 168 if(data=='d'||data=='D') {
NamSom 3:a46061896235 169 pattern2();
NamSom 3:a46061896235 170 }
NamSom 3:a46061896235 171 if(data=='s'||data=='S') {
NamSom 3:a46061896235 172 state_exit = 1;
NamSom 3:a46061896235 173 }
NamSom 3:a46061896235 174 }
Peeraya 0:09e78c46c376 175
Peeraya 0:09e78c46c376 176 } while(state_exit ==0);
Peeraya 0:09e78c46c376 177 pc.printf("\n");
Peeraya 0:09e78c46c376 178 break;
Peeraya 0:09e78c46c376 179
Peeraya 0:09e78c46c376 180 case '2':
Peeraya 0:09e78c46c376 181
NamSom 3:a46061896235 182 if(state_menu == 0) {
NamSom 3:a46061896235 183 pc.printf("LED status\n");
NamSom 3:a46061896235 184 state_menu = 1;
NamSom 3:a46061896235 185 }
NamSom 3:a46061896235 186 if(inbutton == 0) {
NamSom 3:a46061896235 187 pc.printf("OFF\n");
NamSom 3:a46061896235 188 state_menu=1;
NamSom 3:a46061896235 189 }
NamSom 3:a46061896235 190 if(inbutton == 1) {
NamSom 3:a46061896235 191 pc.printf("ON\n");
NamSom 3:a46061896235 192 state_menu=1;
NamSom 3:a46061896235 193 }
NamSom 3:a46061896235 194
Peeraya 0:09e78c46c376 195 pc.printf("\n\n");
Peeraya 0:09e78c46c376 196 break;
Peeraya 0:09e78c46c376 197
Peeraya 0:09e78c46c376 198 default:
Peeraya 0:09e78c46c376 199 pc.printf("plz select 1 or 2 only\n");
Peeraya 0:09e78c46c376 200 pc.printf("\n\n");
Peeraya 0:09e78c46c376 201 break;
Peeraya 0:09e78c46c376 202 }
Peeraya 0:09e78c46c376 203 }
Peeraya 0:09e78c46c376 204
Peeraya 0:09e78c46c376 205 }
Peeraya 0:09e78c46c376 206 }