Dan Anderson
/
frdm_Distance1
First Distance sensor attempt
Fork of frdm_Distance by
main.cpp@6:71c9054f905e, 2015-06-27 (annotated)
- Committer:
- danderson8814
- Date:
- Sat Jun 27 23:51:34 2015 +0000
- Revision:
- 6:71c9054f905e
- Parent:
- 5:9fcfddb46a8d
- Child:
- 7:48b6ad2fc7cd
Switch up time
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 | 6:71c9054f905e | 14 | long ReEnd; |
danderson8814 | 0:cfc5bd6037db | 15 | |
danderson8814 | 2:3e4aa1da40a5 | 16 | void sw2_release(void) |
danderson8814 | 0:cfc5bd6037db | 17 | { |
danderson8814 | 6:71c9054f905e | 18 | Trig = 0; |
danderson8814 | 6:71c9054f905e | 19 | timer.reset(); |
danderson8814 | 6:71c9054f905e | 20 | wait_us(2); |
danderson8814 | 1:0b176971be25 | 21 | led_red = 0; |
danderson8814 | 1:0b176971be25 | 22 | led_green = 1; |
danderson8814 | 3:11c70b1b6934 | 23 | Trig = 1; |
danderson8814 | 6:71c9054f905e | 24 | wait_us(15); |
danderson8814 | 3:11c70b1b6934 | 25 | Trig = 0; |
danderson8814 | 6:71c9054f905e | 26 | while (!Re) { |
danderson8814 | 6:71c9054f905e | 27 | timer.start(); |
danderson8814 | 6:71c9054f905e | 28 | } |
danderson8814 | 6:71c9054f905e | 29 | |
danderson8814 | 6:71c9054f905e | 30 | while (Re){ |
danderson8814 | 6:71c9054f905e | 31 | timer.stop(); |
danderson8814 | 6:71c9054f905e | 32 | } |
danderson8814 | 6:71c9054f905e | 33 | |
danderson8814 | 6:71c9054f905e | 34 | |
danderson8814 | 3:11c70b1b6934 | 35 | ReEnd = timer.read_us(); |
danderson8814 | 6:71c9054f905e | 36 | pc.printf("Distance is %d cm \r\n" , ReEnd ); |
danderson8814 | 2:3e4aa1da40a5 | 37 | |
danderson8814 | 0:cfc5bd6037db | 38 | } |
danderson8814 | 0:cfc5bd6037db | 39 | |
danderson8814 | 3:11c70b1b6934 | 40 | void sw2_press(void) |
danderson8814 | 3:11c70b1b6934 | 41 | { |
danderson8814 | 3:11c70b1b6934 | 42 | led_red = 1 ; |
danderson8814 | 3:11c70b1b6934 | 43 | led_green = 0; |
danderson8814 | 3:11c70b1b6934 | 44 | |
danderson8814 | 3:11c70b1b6934 | 45 | } |
danderson8814 | 3:11c70b1b6934 | 46 | |
danderson8814 | 3:11c70b1b6934 | 47 | |
danderson8814 | 3:11c70b1b6934 | 48 | |
danderson8814 | 0:cfc5bd6037db | 49 | int main() |
danderson8814 | 0:cfc5bd6037db | 50 | { |
danderson8814 | 3:11c70b1b6934 | 51 | Trig = 0; |
danderson8814 | 3:11c70b1b6934 | 52 | |
danderson8814 | 4:f6c0c1f2f5ef | 53 | Pwr=1; |
danderson8814 | 4:f6c0c1f2f5ef | 54 | |
danderson8814 | 4:f6c0c1f2f5ef | 55 | pc.baud(115200); |
danderson8814 | 4:f6c0c1f2f5ef | 56 | |
danderson8814 | 6:71c9054f905e | 57 | |
danderson8814 | 5:9fcfddb46a8d | 58 | pc.printf("Board has been reset \r\n"); |
danderson8814 | 3:11c70b1b6934 | 59 | while (true) { |
danderson8814 | 6:71c9054f905e | 60 | |
danderson8814 | 6:71c9054f905e | 61 | sw2.rise(&sw2_release); |
danderson8814 | 6:71c9054f905e | 62 | |
danderson8814 | 6:71c9054f905e | 63 | sw2.fall(&sw2_press); |
danderson8814 | 0:cfc5bd6037db | 64 | } |
danderson8814 | 0:cfc5bd6037db | 65 | } |