l
Dependencies: mbed
Fork of Nucleo_serial_sf by
main.cpp@3:a46061896235, 2015-10-26 (annotated)
- 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?
User | Revision | Line number | New 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 | } |