ECEM119 assignment 2 problem 4

Committer:
natasha41575
Date:
Wed Apr 17 21:40:16 2019 +0000
Revision:
0:44f80f935e35
Child:
1:eee108fd0b4b
P2

Who changed what in which revision?

UserRevisionLine numberNew 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 }