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@0:7918b43be5cf, 2019-01-10 (annotated)
- Committer:
- wcy9703
- Date:
- Thu Jan 10 06:36:28 2019 +0000
- Revision:
- 0:7918b43be5cf
Final_Education
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| wcy9703 | 0:7918b43be5cf | 1 | #include "mbed.h" |
| wcy9703 | 0:7918b43be5cf | 2 | DigitalOut led1(LED1); |
| wcy9703 | 0:7918b43be5cf | 3 | |
| wcy9703 | 0:7918b43be5cf | 4 | //红绿灯引脚定义 |
| wcy9703 | 0:7918b43be5cf | 5 | DigitalOut NorthStraightRed(PC_9); |
| wcy9703 | 0:7918b43be5cf | 6 | DigitalOut NorthStraightYellow(PB_8); |
| wcy9703 | 0:7918b43be5cf | 7 | DigitalOut NorthStraightGreen(PB_9); |
| wcy9703 | 0:7918b43be5cf | 8 | DigitalOut NorthLeftRed(PC_8); |
| wcy9703 | 0:7918b43be5cf | 9 | DigitalOut NorthLeftYellow(PC_6); |
| wcy9703 | 0:7918b43be5cf | 10 | DigitalOut NorthLeftGreen(PC_5); |
| wcy9703 | 0:7918b43be5cf | 11 | DigitalOut WestStraightRed(PA_10); |
| wcy9703 | 0:7918b43be5cf | 12 | DigitalOut WestStraightYellow(PA_2); |
| wcy9703 | 0:7918b43be5cf | 13 | DigitalOut WestStraightGreen(PA_3); |
| wcy9703 | 0:7918b43be5cf | 14 | DigitalOut WestLeftRed(PB_15); |
| wcy9703 | 0:7918b43be5cf | 15 | DigitalOut WestLeftYellow(PB_14); |
| wcy9703 | 0:7918b43be5cf | 16 | DigitalOut WestLeftGreen(PB_13); |
| wcy9703 | 0:7918b43be5cf | 17 | |
| wcy9703 | 0:7918b43be5cf | 18 | DigitalOut Cameraout(PC_10); |
| wcy9703 | 0:7918b43be5cf | 19 | |
| wcy9703 | 0:7918b43be5cf | 20 | PwmOut mypwm(PB_3); |
| wcy9703 | 0:7918b43be5cf | 21 | |
| wcy9703 | 0:7918b43be5cf | 22 | int State=1; |
| wcy9703 | 0:7918b43be5cf | 23 | int i=0; |
| wcy9703 | 0:7918b43be5cf | 24 | Timer debounce; |
| wcy9703 | 0:7918b43be5cf | 25 | bool judg = true; |
| wcy9703 | 0:7918b43be5cf | 26 | int ju=0; |
| wcy9703 | 0:7918b43be5cf | 27 | |
| wcy9703 | 0:7918b43be5cf | 28 | InterruptIn button1(USER_BUTTON); |
| wcy9703 | 0:7918b43be5cf | 29 | InterruptIn detector(PC_7); |
| wcy9703 | 0:7918b43be5cf | 30 | |
| wcy9703 | 0:7918b43be5cf | 31 | void Emergence() |
| wcy9703 | 0:7918b43be5cf | 32 | { |
| wcy9703 | 0:7918b43be5cf | 33 | NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 34 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 35 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 36 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 37 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 38 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 39 | WestStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 40 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 41 | WestStraightGreen=1; |
| wcy9703 | 0:7918b43be5cf | 42 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 43 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 44 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 45 | |
| wcy9703 | 0:7918b43be5cf | 46 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 47 | mypwm.pulsewidth_ms(18.5); |
| wcy9703 | 0:7918b43be5cf | 48 | wait_ms(100); |
| wcy9703 | 0:7918b43be5cf | 49 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 50 | mypwm.pulsewidth_ms(1.5); |
| wcy9703 | 0:7918b43be5cf | 51 | wait_ms(240); |
| wcy9703 | 0:7918b43be5cf | 52 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 53 | mypwm.pulsewidth_ms(20); |
| wcy9703 | 0:7918b43be5cf | 54 | wait(4); |
| wcy9703 | 0:7918b43be5cf | 55 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 56 | mypwm.pulsewidth_ms(18.5); |
| wcy9703 | 0:7918b43be5cf | 57 | } |
| wcy9703 | 0:7918b43be5cf | 58 | |
| wcy9703 | 0:7918b43be5cf | 59 | void Flash() |
| wcy9703 | 0:7918b43be5cf | 60 | /*{ |
| wcy9703 | 0:7918b43be5cf | 61 | if(judg) |
| wcy9703 | 0:7918b43be5cf | 62 | { |
| wcy9703 | 0:7918b43be5cf | 63 | Cameraout = !Cameraout; |
| wcy9703 | 0:7918b43be5cf | 64 | wait_ms(100); |
| wcy9703 | 0:7918b43be5cf | 65 | //Cameraout = !Cameraout; |
| wcy9703 | 0:7918b43be5cf | 66 | } |
| wcy9703 | 0:7918b43be5cf | 67 | judg=!judg; |
| wcy9703 | 0:7918b43be5cf | 68 | }*/ |
| wcy9703 | 0:7918b43be5cf | 69 | /*{ |
| wcy9703 | 0:7918b43be5cf | 70 | if((debounce.read_ms()>100)&&judg&&ju==1) |
| wcy9703 | 0:7918b43be5cf | 71 | { |
| wcy9703 | 0:7918b43be5cf | 72 | Cameraout=!Cameraout; |
| wcy9703 | 0:7918b43be5cf | 73 | debounce.reset(); |
| wcy9703 | 0:7918b43be5cf | 74 | wait_ms(100); |
| wcy9703 | 0:7918b43be5cf | 75 | Cameraout=!Cameraout; |
| wcy9703 | 0:7918b43be5cf | 76 | ju=0; |
| wcy9703 | 0:7918b43be5cf | 77 | } |
| wcy9703 | 0:7918b43be5cf | 78 | else |
| wcy9703 | 0:7918b43be5cf | 79 | ju=1; |
| wcy9703 | 0:7918b43be5cf | 80 | judg = !judg; |
| wcy9703 | 0:7918b43be5cf | 81 | |
| wcy9703 | 0:7918b43be5cf | 82 | }*/ |
| wcy9703 | 0:7918b43be5cf | 83 | |
| wcy9703 | 0:7918b43be5cf | 84 | { |
| wcy9703 | 0:7918b43be5cf | 85 | if(i==1) |
| wcy9703 | 0:7918b43be5cf | 86 | { |
| wcy9703 | 0:7918b43be5cf | 87 | if(debounce.read_ms()>1000) |
| wcy9703 | 0:7918b43be5cf | 88 | { |
| wcy9703 | 0:7918b43be5cf | 89 | Cameraout=!Cameraout; |
| wcy9703 | 0:7918b43be5cf | 90 | debounce.reset(); |
| wcy9703 | 0:7918b43be5cf | 91 | wait_ms(100); |
| wcy9703 | 0:7918b43be5cf | 92 | Cameraout=!Cameraout; |
| wcy9703 | 0:7918b43be5cf | 93 | |
| wcy9703 | 0:7918b43be5cf | 94 | } |
| wcy9703 | 0:7918b43be5cf | 95 | } |
| wcy9703 | 0:7918b43be5cf | 96 | } |
| wcy9703 | 0:7918b43be5cf | 97 | |
| wcy9703 | 0:7918b43be5cf | 98 | int main() |
| wcy9703 | 0:7918b43be5cf | 99 | { |
| wcy9703 | 0:7918b43be5cf | 100 | debounce.start(); |
| wcy9703 | 0:7918b43be5cf | 101 | button1.fall(&Emergence); |
| wcy9703 | 0:7918b43be5cf | 102 | detector.fall(&Flash); |
| wcy9703 | 0:7918b43be5cf | 103 | while(1) |
| wcy9703 | 0:7918b43be5cf | 104 | { |
| wcy9703 | 0:7918b43be5cf | 105 | i=State%9; |
| wcy9703 | 0:7918b43be5cf | 106 | State++; |
| wcy9703 | 0:7918b43be5cf | 107 | switch(i){ |
| wcy9703 | 0:7918b43be5cf | 108 | case 1: NorthStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 109 | NorthStraightGreen=1; |
| wcy9703 | 0:7918b43be5cf | 110 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 111 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 112 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 113 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 114 | WestStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 115 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 116 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 117 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 118 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 119 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 120 | wait(5); |
| wcy9703 | 0:7918b43be5cf | 121 | break; |
| wcy9703 | 0:7918b43be5cf | 122 | case 2: NorthStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 123 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 124 | NorthStraightYellow=1; |
| wcy9703 | 0:7918b43be5cf | 125 | NorthLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 126 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 127 | NorthLeftYellow=1; |
| wcy9703 | 0:7918b43be5cf | 128 | WestStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 129 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 130 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 131 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 132 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 133 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 134 | wait(2); |
| wcy9703 | 0:7918b43be5cf | 135 | break; |
| wcy9703 | 0:7918b43be5cf | 136 | case 3: NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 137 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 138 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 139 | NorthLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 140 | NorthLeftGreen=1; |
| wcy9703 | 0:7918b43be5cf | 141 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 142 | WestStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 143 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 144 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 145 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 146 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 147 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 148 | wait(5); |
| wcy9703 | 0:7918b43be5cf | 149 | break; |
| wcy9703 | 0:7918b43be5cf | 150 | case 4: NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 151 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 152 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 153 | NorthLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 154 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 155 | NorthLeftYellow=1; |
| wcy9703 | 0:7918b43be5cf | 156 | WestStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 157 | WestStraightYellow=1; |
| wcy9703 | 0:7918b43be5cf | 158 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 159 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 160 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 161 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 162 | wait(2); |
| wcy9703 | 0:7918b43be5cf | 163 | break; |
| wcy9703 | 0:7918b43be5cf | 164 | case 5: NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 165 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 166 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 167 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 168 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 169 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 170 | WestStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 171 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 172 | WestStraightGreen=1; |
| wcy9703 | 0:7918b43be5cf | 173 | WestLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 174 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 175 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 176 | //闸杆抬起 |
| wcy9703 | 0:7918b43be5cf | 177 | |
| wcy9703 | 0:7918b43be5cf | 178 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 179 | mypwm.pulsewidth_ms(18.5); |
| wcy9703 | 0:7918b43be5cf | 180 | wait_ms(100); |
| wcy9703 | 0:7918b43be5cf | 181 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 182 | mypwm.pulsewidth_ms(1.5); |
| wcy9703 | 0:7918b43be5cf | 183 | wait_ms(240); |
| wcy9703 | 0:7918b43be5cf | 184 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 185 | mypwm.pulsewidth_ms(20); |
| wcy9703 | 0:7918b43be5cf | 186 | wait(4); |
| wcy9703 | 0:7918b43be5cf | 187 | mypwm.period_ms(20); |
| wcy9703 | 0:7918b43be5cf | 188 | mypwm.pulsewidth_ms(18.5); |
| wcy9703 | 0:7918b43be5cf | 189 | break; |
| wcy9703 | 0:7918b43be5cf | 190 | case 6: NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 191 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 192 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 193 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 194 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 195 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 196 | WestStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 197 | WestStraightYellow=1; |
| wcy9703 | 0:7918b43be5cf | 198 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 199 | WestLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 200 | WestLeftYellow=1; |
| wcy9703 | 0:7918b43be5cf | 201 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 202 | wait(2); |
| wcy9703 | 0:7918b43be5cf | 203 | break; |
| wcy9703 | 0:7918b43be5cf | 204 | case 7: NorthStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 205 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 206 | NorthStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 207 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 208 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 209 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 210 | WestStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 211 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 212 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 213 | WestLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 214 | WestLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 215 | WestLeftGreen=1; |
| wcy9703 | 0:7918b43be5cf | 216 | wait(5); |
| wcy9703 | 0:7918b43be5cf | 217 | break; |
| wcy9703 | 0:7918b43be5cf | 218 | case 8: NorthStraightRed=0; |
| wcy9703 | 0:7918b43be5cf | 219 | NorthStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 220 | NorthStraightYellow=1; |
| wcy9703 | 0:7918b43be5cf | 221 | NorthLeftRed=1; |
| wcy9703 | 0:7918b43be5cf | 222 | NorthLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 223 | NorthLeftYellow=0; |
| wcy9703 | 0:7918b43be5cf | 224 | WestStraightRed=1; |
| wcy9703 | 0:7918b43be5cf | 225 | WestStraightYellow=0; |
| wcy9703 | 0:7918b43be5cf | 226 | WestStraightGreen=0; |
| wcy9703 | 0:7918b43be5cf | 227 | WestLeftRed=0; |
| wcy9703 | 0:7918b43be5cf | 228 | WestLeftYellow=1; |
| wcy9703 | 0:7918b43be5cf | 229 | WestLeftGreen=0; |
| wcy9703 | 0:7918b43be5cf | 230 | wait(2); |
| wcy9703 | 0:7918b43be5cf | 231 | break; |
| wcy9703 | 0:7918b43be5cf | 232 | default:break; |
| wcy9703 | 0:7918b43be5cf | 233 | } |
| wcy9703 | 0:7918b43be5cf | 234 | |
| wcy9703 | 0:7918b43be5cf | 235 | |
| wcy9703 | 0:7918b43be5cf | 236 | } |
| wcy9703 | 0:7918b43be5cf | 237 | |
| wcy9703 | 0:7918b43be5cf | 238 | |
| wcy9703 | 0:7918b43be5cf | 239 | } |