Dan Anderson
/
frdm_Distance1
Fork of frdm_Distance by
main.cpp@4:f6c0c1f2f5ef, 2015-06-27 (annotated)
- Committer:
- danderson8814
- Date:
- Sat Jun 27 22:47:23 2015 +0000
- Revision:
- 4:f6c0c1f2f5ef
- Parent:
- 3:11c70b1b6934
- Child:
- 5:9fcfddb46a8d
Huh
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
danderson8814 | 0:cfc5bd6037db | 1 | #include "mbed.h" |
danderson8814 | 0:cfc5bd6037db | 2 | |
danderson8814 | 2:3e4aa1da40a5 | 3 | // Initializing all ins and outs: Program should get distance in cm when switch 2 is pressed and release |
danderson8814 | 2:3e4aa1da40a5 | 4 | // and change LED from Green to red when Switch 2 is pressed |
danderson8814 | 2:3e4aa1da40a5 | 5 | |
danderson8814 | 3:11c70b1b6934 | 6 | DigitalOut led_red(LED_RED); |
danderson8814 | 3:11c70b1b6934 | 7 | DigitalOut led_green(LED_GREEN); |
danderson8814 | 4:f6c0c1f2f5ef | 8 | DigitalIn Re(D13); |
danderson8814 | 4:f6c0c1f2f5ef | 9 | DigitalOut Trig(D12); |
danderson8814 | 4:f6c0c1f2f5ef | 10 | DigitalOut Pwr(D11); |
danderson8814 | 3:11c70b1b6934 | 11 | InterruptIn sw2(SW2); |
danderson8814 | 3:11c70b1b6934 | 12 | Serial pc(USBTX, USBRX); |
danderson8814 | 3:11c70b1b6934 | 13 | Timer timer; |
danderson8814 | 3:11c70b1b6934 | 14 | int ReStart, ReEnd; |
danderson8814 | 0:cfc5bd6037db | 15 | |
danderson8814 | 2:3e4aa1da40a5 | 16 | void sw2_release(void) |
danderson8814 | 0:cfc5bd6037db | 17 | { |
danderson8814 | 1:0b176971be25 | 18 | led_red = 0; |
danderson8814 | 1:0b176971be25 | 19 | led_green = 1; |
danderson8814 | 3:11c70b1b6934 | 20 | Trig = 1; |
danderson8814 | 3:11c70b1b6934 | 21 | wait_us(10); |
danderson8814 | 3:11c70b1b6934 | 22 | Trig = 0; |
danderson8814 | 3:11c70b1b6934 | 23 | timer.start(); |
danderson8814 | 3:11c70b1b6934 | 24 | while ( Re == 0){ |
danderson8814 | 3:11c70b1b6934 | 25 | wait_us(1); |
danderson8814 | 3:11c70b1b6934 | 26 | } |
danderson8814 | 3:11c70b1b6934 | 27 | ReStart = timer.read_us(); |
danderson8814 | 3:11c70b1b6934 | 28 | while ( Re ) { |
danderson8814 | 3:11c70b1b6934 | 29 | wait_us(1); |
danderson8814 | 3:11c70b1b6934 | 30 | } |
danderson8814 | 3:11c70b1b6934 | 31 | ReEnd = timer.read_us(); |
danderson8814 | 4:f6c0c1f2f5ef | 32 | pc.printf("Distance is %d cm \r\n" , (ReEnd-ReStart)/58 ); |
danderson8814 | 2:3e4aa1da40a5 | 33 | |
danderson8814 | 0:cfc5bd6037db | 34 | } |
danderson8814 | 0:cfc5bd6037db | 35 | |
danderson8814 | 3:11c70b1b6934 | 36 | void sw2_press(void) |
danderson8814 | 3:11c70b1b6934 | 37 | { |
danderson8814 | 3:11c70b1b6934 | 38 | led_red = 1 ; |
danderson8814 | 3:11c70b1b6934 | 39 | led_green = 0; |
danderson8814 | 3:11c70b1b6934 | 40 | |
danderson8814 | 3:11c70b1b6934 | 41 | } |
danderson8814 | 3:11c70b1b6934 | 42 | |
danderson8814 | 3:11c70b1b6934 | 43 | |
danderson8814 | 3:11c70b1b6934 | 44 | |
danderson8814 | 0:cfc5bd6037db | 45 | int main() |
danderson8814 | 0:cfc5bd6037db | 46 | { |
danderson8814 | 3:11c70b1b6934 | 47 | Trig = 0; |
danderson8814 | 3:11c70b1b6934 | 48 | |
danderson8814 | 4:f6c0c1f2f5ef | 49 | Pwr=1; |
danderson8814 | 4:f6c0c1f2f5ef | 50 | |
danderson8814 | 4:f6c0c1f2f5ef | 51 | pc.baud(115200); |
danderson8814 | 4:f6c0c1f2f5ef | 52 | |
danderson8814 | 0:cfc5bd6037db | 53 | sw2.rise(&sw2_release); |
danderson8814 | 3:11c70b1b6934 | 54 | |
danderson8814 | 3:11c70b1b6934 | 55 | sw2.fall(&sw2_press); |
danderson8814 | 3:11c70b1b6934 | 56 | |
danderson8814 | 3:11c70b1b6934 | 57 | while (true) { |
danderson8814 | 0:cfc5bd6037db | 58 | } |
danderson8814 | 0:cfc5bd6037db | 59 | } |