Sam Walsh / Mbed 2 deprecated Nucleo_FrequencyCounter_Timed

Dependencies:   mbed

Committer:
EmbeddedSam
Date:
Tue Jan 26 12:54:37 2016 +0000
Revision:
0:fb3e19364d48
Working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EmbeddedSam 0:fb3e19364d48 1 #include "mbed.h"
EmbeddedSam 0:fb3e19364d48 2
EmbeddedSam 0:fb3e19364d48 3 #define TICKS_PER_REVOLUTION 12.0
EmbeddedSam 0:fb3e19364d48 4 #define TICK_CHECK_PERIOD 0.1
EmbeddedSam 0:fb3e19364d48 5
EmbeddedSam 0:fb3e19364d48 6 DigitalOut myled(LED1);
EmbeddedSam 0:fb3e19364d48 7 Serial pc(USBTX, USBRX); // tx, rx
EmbeddedSam 0:fb3e19364d48 8 Ticker periodicTimer1, periodicTimer2;
EmbeddedSam 0:fb3e19364d48 9
EmbeddedSam 0:fb3e19364d48 10 float speed_rpm, speed_rps, ticks_per_second;
EmbeddedSam 0:fb3e19364d48 11 volatile unsigned int tick_counter, final_count;
EmbeddedSam 0:fb3e19364d48 12
EmbeddedSam 0:fb3e19364d48 13 InterruptIn freqInputPin(D2);
EmbeddedSam 0:fb3e19364d48 14
EmbeddedSam 0:fb3e19364d48 15 void freqInputPin_Interrupt() {
EmbeddedSam 0:fb3e19364d48 16 //Triggers on the rising edge of the frequency signal
EmbeddedSam 0:fb3e19364d48 17 tick_counter++;
EmbeddedSam 0:fb3e19364d48 18 }
EmbeddedSam 0:fb3e19364d48 19
EmbeddedSam 0:fb3e19364d48 20 void check_TickCount(){
EmbeddedSam 0:fb3e19364d48 21 final_count = tick_counter;
EmbeddedSam 0:fb3e19364d48 22 //pc.printf("\n\rTick Count is : %d", final_count);
EmbeddedSam 0:fb3e19364d48 23 tick_counter = 0;
EmbeddedSam 0:fb3e19364d48 24 }
EmbeddedSam 0:fb3e19364d48 25
EmbeddedSam 0:fb3e19364d48 26 void display_TickCount(){
EmbeddedSam 0:fb3e19364d48 27 //pc.printf("\n\r Final Count is : %.2f", (float) final_count*(1.0/TICK_CHECK_PERIOD));
EmbeddedSam 0:fb3e19364d48 28 pc.printf("\n\r Speed in RPM is : %.2f", (float)(final_count*(1.0/TICK_CHECK_PERIOD))*(60.0/TICKS_PER_REVOLUTION));
EmbeddedSam 0:fb3e19364d48 29 }
EmbeddedSam 0:fb3e19364d48 30
EmbeddedSam 0:fb3e19364d48 31 int main() {
EmbeddedSam 0:fb3e19364d48 32 freqInputPin.rise(&freqInputPin_Interrupt); //chain interrupt to rising edge
EmbeddedSam 0:fb3e19364d48 33 periodicTimer1.attach(&check_TickCount, TICK_CHECK_PERIOD);
EmbeddedSam 0:fb3e19364d48 34 periodicTimer2.attach(&display_TickCount, 1.0); //Display conut once a second
EmbeddedSam 0:fb3e19364d48 35 while(1) {
EmbeddedSam 0:fb3e19364d48 36 }
EmbeddedSam 0:fb3e19364d48 37 }