Eng Riyadh / Mbed 2 deprecated celever_heartbeat_monitor

Dependencies:   mbed

main.cpp

Committer:
riyood
Date:
2017-03-01
Revision:
2:c65e1c89824c
Parent:
1:08d5b02b7eb4
Child:
3:937505b99ca7

File content as of revision 2:c65e1c89824c:

#include "mbed.h"

DigitalOut myBuzzer(D6);

DigitalOut myLedGreen(LED1);

DigitalIn myButton(PC_13);
DigitalIn myPulse(D7);

Timer timer;

float getpulse(void);
void Sound_AlarmBuzzer(void);

int main()
{
    myBuzzer=0;
    myLedGreen=0;

    float HeartBeat=0.0f;
    //myPulse.rise(&serviceMyPulse);
    printf("Heart Beat Monitor!\n\r");
    timer.start();
    timer.reset();
    //float HB_Array[6]={0.0f};

    while(1) {

        //to convert this time we need to perform a BPM=(1/t)*60
        HeartBeat=getpulse();//(1.0f/HeartBeat)*60.0f;


        printf("Heart Beat is: %5.1f\n\r",HeartBeat);
        if (HeartBeat < 50.0f) {
            printf( "Warning, low Heartbeat \n\r");
            while(myButton == 1) {
                
            Sound_AlarmBuzzer();
            
            }
            deepsleep();
        }
        if (HeartBeat > 90.0f) {
            printf("Warning, high HeartBeart \n\r");
            while(myButton == 1) {

            Sound_AlarmBuzzer();
            
            }
            deepsleep();

        }

        if (HeartBeat < 1.0f) {
            printf("WARNING, Heart Stopped!!!! \n\r");
            while(myButton == 1) {

             Sound_AlarmBuzzer();
            }
            deepsleep();

        }

    }

}
/*
void serviceMyPulse(void){
    myled=1;
    wait_ms(100);
    myled=0;
    }
*/

float getpulse(void)
{

    float localHB;
    while(myPulse==0) {
        wait_ms(50);
    }
    while(myPulse==1) {
        wait_ms(50);
    }
    timer.reset();

    myLedGreen=1;
    wait_ms(100);
    myLedGreen=0;


    while(myPulse==0) {
        wait_ms(50);
    }
    while(myPulse==1) {
        wait_ms(50);
    }
    localHB=timer.read();

    myLedGreen=1;
    wait_ms(100);
    myLedGreen=0;



    //to convert this time we need to perform a BPM=(1/t)*60
    localHB=(1.0f/localHB)*60.0f;

    return localHB;
}

void Sound_AlarmBuzzer(void)
{
        myBuzzer=1;
        wait_ms(500);
        myBuzzer=0;
        wait_ms(500);
}