Lu-Hsuan Chen
/
motorcar_pid
motor car with PID running feature
main.cpp@0:6fbf8bc664ee, 2018-07-26 (annotated)
- Committer:
- cudaChen
- Date:
- Thu Jul 26 03:13:34 2018 +0000
- Revision:
- 0:6fbf8bc664ee
- Child:
- 2:1dcd81fdef9e
initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cudaChen | 0:6fbf8bc664ee | 1 | #include "mbed.h" |
cudaChen | 0:6fbf8bc664ee | 2 | |
cudaChen | 0:6fbf8bc664ee | 3 | #include "motorcar_pid.h" |
cudaChen | 0:6fbf8bc664ee | 4 | |
cudaChen | 0:6fbf8bc664ee | 5 | DigitalOut led1(LED1); // LED indicating car is running |
cudaChen | 0:6fbf8bc664ee | 6 | DigitalOut pb(PC_13); // car activate button |
cudaChen | 0:6fbf8bc664ee | 7 | int lastButtonState = 0; |
cudaChen | 0:6fbf8bc664ee | 8 | bool ledState = false; |
cudaChen | 0:6fbf8bc664ee | 9 | |
cudaChen | 0:6fbf8bc664ee | 10 | // main() runs in its own thread in the OS |
cudaChen | 0:6fbf8bc664ee | 11 | int main() { |
cudaChen | 0:6fbf8bc664ee | 12 | |
cudaChen | 0:6fbf8bc664ee | 13 | |
cudaChen | 0:6fbf8bc664ee | 14 | while (true) { |
cudaChen | 0:6fbf8bc664ee | 15 | int reading1 = pb.read(); |
cudaChen | 0:6fbf8bc664ee | 16 | |
cudaChen | 0:6fbf8bc664ee | 17 | if(reading1 != lastButtonState) { |
cudaChen | 0:6fbf8bc664ee | 18 | wait_ms(20); |
cudaChen | 0:6fbf8bc664ee | 19 | |
cudaChen | 0:6fbf8bc664ee | 20 | int reading2 = pb.read(); |
cudaChen | 0:6fbf8bc664ee | 21 | |
cudaChen | 0:6fbf8bc664ee | 22 | if(reading2 == reading1) { |
cudaChen | 0:6fbf8bc664ee | 23 | lastButtonState = reading2; |
cudaChen | 0:6fbf8bc664ee | 24 | } |
cudaChen | 0:6fbf8bc664ee | 25 | |
cudaChen | 0:6fbf8bc664ee | 26 | if(lastButtonState == 1) { |
cudaChen | 0:6fbf8bc664ee | 27 | ledState = !ledState; |
cudaChen | 0:6fbf8bc664ee | 28 | } |
cudaChen | 0:6fbf8bc664ee | 29 | } |
cudaChen | 0:6fbf8bc664ee | 30 | |
cudaChen | 0:6fbf8bc664ee | 31 | led1.write(ledState); |
cudaChen | 0:6fbf8bc664ee | 32 | |
cudaChen | 0:6fbf8bc664ee | 33 | //if(ledState) {} |
cudaChen | 0:6fbf8bc664ee | 34 | } |
cudaChen | 0:6fbf8bc664ee | 35 | } |
cudaChen | 0:6fbf8bc664ee | 36 |