123

Dependencies:   mbed

Committer:
joaomazza
Date:
Sat Sep 29 19:14:08 2018 +0000
Revision:
0:caf81a29d035
d

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joaomazza 0:caf81a29d035 1 #include "mbed.h"
joaomazza 0:caf81a29d035 2 #define NUM_COUNTS 2
joaomazza 0:caf81a29d035 3
joaomazza 0:caf81a29d035 4 InterruptIn button(PB_9);
joaomazza 0:caf81a29d035 5 DigitalOut simulation(PA_8);
joaomazza 0:caf81a29d035 6 int count;
joaomazza 0:caf81a29d035 7 float t1 = 0, total = 0, RPM;
joaomazza 0:caf81a29d035 8 Timer t;
joaomazza 0:caf81a29d035 9 Serial pc(PA_9, PA_10); // tx and rx
joaomazza 0:caf81a29d035 10
joaomazza 0:caf81a29d035 11 void flip() {
joaomazza 0:caf81a29d035 12 t.start();
joaomazza 0:caf81a29d035 13 count++;
joaomazza 0:caf81a29d035 14 total += t.read_ms() - t1;
joaomazza 0:caf81a29d035 15 t1 = t.read_ms();
joaomazza 0:caf81a29d035 16 }
joaomazza 0:caf81a29d035 17
joaomazza 0:caf81a29d035 18 int main() {
joaomazza 0:caf81a29d035 19 button.rise(&flip); // attach the address of the flip function to the rising edge
joaomazza 0:caf81a29d035 20 while(1) { // wait around, interrupts will interrupt this!
joaomazza 0:caf81a29d035 21 if(count >= NUM_COUNTS){
joaomazza 0:caf81a29d035 22 t.stop();
joaomazza 0:caf81a29d035 23 RPM = ((NUM_COUNTS-1)/(total/1000))*60;
joaomazza 0:caf81a29d035 24 pc.printf("%.2f\n",RPM);
joaomazza 0:caf81a29d035 25 count = 0;
joaomazza 0:caf81a29d035 26 t1 = 0;
joaomazza 0:caf81a29d035 27 total = 0;
joaomazza 0:caf81a29d035 28 t.reset();
joaomazza 0:caf81a29d035 29 }
joaomazza 0:caf81a29d035 30 simulation = 0;
joaomazza 0:caf81a29d035 31 wait_ms(24);
joaomazza 0:caf81a29d035 32 simulation = 1;
joaomazza 0:caf81a29d035 33 wait_ms(1);
joaomazza 0:caf81a29d035 34 }
joaomazza 0:caf81a29d035 35 }