Natasha Sarkar
/
m119_a2_p4
ECEM119 assignment 2 problem 4
main.cpp@0:44f80f935e35, 2019-04-17 (annotated)
- Committer:
- natasha41575
- Date:
- Wed Apr 17 21:40:16 2019 +0000
- Revision:
- 0:44f80f935e35
- Child:
- 1:eee108fd0b4b
P2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
natasha41575 | 0:44f80f935e35 | 1 | /* mbed Microcontroller Library |
natasha41575 | 0:44f80f935e35 | 2 | * Copyright (c) 2018 ARM Limited |
natasha41575 | 0:44f80f935e35 | 3 | * SPDX-License-Identifier: Apache-2.0 |
natasha41575 | 0:44f80f935e35 | 4 | */ |
natasha41575 | 0:44f80f935e35 | 5 | |
natasha41575 | 0:44f80f935e35 | 6 | #include "mbed.h" |
natasha41575 | 0:44f80f935e35 | 7 | #include "stats_report.h" |
natasha41575 | 0:44f80f935e35 | 8 | // |
natasha41575 | 0:44f80f935e35 | 9 | PwmOut output(PTA10); |
natasha41575 | 0:44f80f935e35 | 10 | DigitalIn input(PTD9); |
natasha41575 | 0:44f80f935e35 | 11 | Timer timer1; |
natasha41575 | 0:44f80f935e35 | 12 | Timer timer2; |
natasha41575 | 0:44f80f935e35 | 13 | |
natasha41575 | 0:44f80f935e35 | 14 | Serial pc(USBTX, USBRX); //create a Serial object |
natasha41575 | 0:44f80f935e35 | 15 | |
natasha41575 | 0:44f80f935e35 | 16 | int main() { |
natasha41575 | 0:44f80f935e35 | 17 | int period_ms = 500; |
natasha41575 | 0:44f80f935e35 | 18 | output.period_ms(period_ms); |
natasha41575 | 0:44f80f935e35 | 19 | output.write(0.5); |
natasha41575 | 0:44f80f935e35 | 20 | timer1.start(); |
natasha41575 | 0:44f80f935e35 | 21 | timer2.start(); |
natasha41575 | 0:44f80f935e35 | 22 | |
natasha41575 | 0:44f80f935e35 | 23 | int prev = 0; |
natasha41575 | 0:44f80f935e35 | 24 | int count = 0; |
natasha41575 | 0:44f80f935e35 | 25 | int t = 0; |
natasha41575 | 0:44f80f935e35 | 26 | float d = 0; |
natasha41575 | 0:44f80f935e35 | 27 | int time_on = 0; |
natasha41575 | 0:44f80f935e35 | 28 | |
natasha41575 | 0:44f80f935e35 | 29 | while(1) { |
natasha41575 | 0:44f80f935e35 | 30 | pc.baud(115200); |
natasha41575 | 0:44f80f935e35 | 31 | int curr = input.read(); |
natasha41575 | 0:44f80f935e35 | 32 | if (curr) { |
natasha41575 | 0:44f80f935e35 | 33 | if (prev == 0) { |
natasha41575 | 0:44f80f935e35 | 34 | timer2.reset(); |
natasha41575 | 0:44f80f935e35 | 35 | if (count == 0) { |
natasha41575 | 0:44f80f935e35 | 36 | t = timer1.read_us(); |
natasha41575 | 0:44f80f935e35 | 37 | d = float(time_on) / t; |
natasha41575 | 0:44f80f935e35 | 38 | pc.printf("mbed> %i, %f\n", t, d); |
natasha41575 | 0:44f80f935e35 | 39 | } |
natasha41575 | 0:44f80f935e35 | 40 | count = (count + 1) % 10; |
natasha41575 | 0:44f80f935e35 | 41 | timer1.reset(); |
natasha41575 | 0:44f80f935e35 | 42 | } |
natasha41575 | 0:44f80f935e35 | 43 | prev = 1; |
natasha41575 | 0:44f80f935e35 | 44 | } else { |
natasha41575 | 0:44f80f935e35 | 45 | if (prev == 1) { |
natasha41575 | 0:44f80f935e35 | 46 | time_on = timer2.read_us(); |
natasha41575 | 0:44f80f935e35 | 47 | } |
natasha41575 | 0:44f80f935e35 | 48 | prev = 0; |
natasha41575 | 0:44f80f935e35 | 49 | } |
natasha41575 | 0:44f80f935e35 | 50 | } |
natasha41575 | 0:44f80f935e35 | 51 | } |