https://www.adafruit.com/product/1077

Committer:
i_am_kitsune
Date:
Wed Mar 28 04:40:24 2018 +0000
Revision:
0:acd3444161e9
20180328; Nucleo-L432KC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
i_am_kitsune 0:acd3444161e9 1 #include "mbed.h"
i_am_kitsune 0:acd3444161e9 2
i_am_kitsune 0:acd3444161e9 3 #define INTERRUPT_MODE
i_am_kitsune 0:acd3444161e9 4 //#define DIGITAL_IN_MODE
i_am_kitsune 0:acd3444161e9 5
i_am_kitsune 0:acd3444161e9 6 DigitalOut led(D10);
i_am_kitsune 0:acd3444161e9 7
i_am_kitsune 0:acd3444161e9 8 #ifdef DIGITAL_IN_MODE
i_am_kitsune 0:acd3444161e9 9 //DigitalOut myled(LED1);
i_am_kitsune 0:acd3444161e9 10 DigitalIn mypin(D9);
i_am_kitsune 0:acd3444161e9 11 #endif
i_am_kitsune 0:acd3444161e9 12
i_am_kitsune 0:acd3444161e9 13 #ifdef INTERRUPT_MODE
i_am_kitsune 0:acd3444161e9 14 InterruptIn hr(D6);
i_am_kitsune 0:acd3444161e9 15 Ticker flipper;
i_am_kitsune 0:acd3444161e9 16 #endif
i_am_kitsune 0:acd3444161e9 17
i_am_kitsune 0:acd3444161e9 18 int hr_cnt = 0;
i_am_kitsune 0:acd3444161e9 19
i_am_kitsune 0:acd3444161e9 20 void flip()
i_am_kitsune 0:acd3444161e9 21 {
i_am_kitsune 0:acd3444161e9 22 printf("Beat - int\n");
i_am_kitsune 0:acd3444161e9 23 led = !led;
i_am_kitsune 0:acd3444161e9 24 hr_cnt++;
i_am_kitsune 0:acd3444161e9 25 }
i_am_kitsune 0:acd3444161e9 26
i_am_kitsune 0:acd3444161e9 27 void calculate(){
i_am_kitsune 0:acd3444161e9 28 hr_cnt = hr_cnt * 6;
i_am_kitsune 0:acd3444161e9 29 printf("Heartrate %d \n", hr_cnt);
i_am_kitsune 0:acd3444161e9 30 hr_cnt = 0;
i_am_kitsune 0:acd3444161e9 31 }
i_am_kitsune 0:acd3444161e9 32
i_am_kitsune 0:acd3444161e9 33 int read, old_read;
i_am_kitsune 0:acd3444161e9 34
i_am_kitsune 0:acd3444161e9 35 int main()
i_am_kitsune 0:acd3444161e9 36 {
i_am_kitsune 0:acd3444161e9 37 #ifdef INTERRUPT_MODE
i_am_kitsune 0:acd3444161e9 38 hr.rise(&flip);
i_am_kitsune 0:acd3444161e9 39 flipper.attach(callback(calculate),10); // setup flipper to call flip after 2 seconds
i_am_kitsune 0:acd3444161e9 40 #endif
i_am_kitsune 0:acd3444161e9 41
i_am_kitsune 0:acd3444161e9 42
i_am_kitsune 0:acd3444161e9 43 #ifdef DIGITAL_IN_MODE
i_am_kitsune 0:acd3444161e9 44 if(mypin.is_connected()) {
i_am_kitsune 0:acd3444161e9 45 printf("mypin is connected and initialized! \n\r");
i_am_kitsune 0:acd3444161e9 46 }
i_am_kitsune 0:acd3444161e9 47
i_am_kitsune 0:acd3444161e9 48 // Optional: set mode as PullUp/PullDown/PullNone/OpenDrain
i_am_kitsune 0:acd3444161e9 49 mypin.mode(PullDown);
i_am_kitsune 0:acd3444161e9 50
i_am_kitsune 0:acd3444161e9 51 read = mypin.read();
i_am_kitsune 0:acd3444161e9 52
i_am_kitsune 0:acd3444161e9 53 //printf("beat %d \n", read);
i_am_kitsune 0:acd3444161e9 54
i_am_kitsune 0:acd3444161e9 55 printf("Waiting for heart beat...\n\n");
i_am_kitsune 0:acd3444161e9 56
i_am_kitsune 0:acd3444161e9 57 while (!mypin.read()) {};
i_am_kitsune 0:acd3444161e9 58 printf("Heart beat detected!\n");
i_am_kitsune 0:acd3444161e9 59 #endif
i_am_kitsune 0:acd3444161e9 60
i_am_kitsune 0:acd3444161e9 61 while(1) {
i_am_kitsune 0:acd3444161e9 62
i_am_kitsune 0:acd3444161e9 63
i_am_kitsune 0:acd3444161e9 64 #ifdef DIGITAL_IN_MODE
i_am_kitsune 0:acd3444161e9 65
i_am_kitsune 0:acd3444161e9 66 read = mypin.read();
i_am_kitsune 0:acd3444161e9 67 if (read && (old_read != read)) {
i_am_kitsune 0:acd3444161e9 68 printf("Beat\n");
i_am_kitsune 0:acd3444161e9 69 }
i_am_kitsune 0:acd3444161e9 70
i_am_kitsune 0:acd3444161e9 71 old_read = read;
i_am_kitsune 0:acd3444161e9 72 #endif
i_am_kitsune 0:acd3444161e9 73 //printf("beat %d \n", read);
i_am_kitsune 0:acd3444161e9 74 //printf("hello \n\n");
i_am_kitsune 0:acd3444161e9 75
i_am_kitsune 0:acd3444161e9 76 //led.write(0);
i_am_kitsune 0:acd3444161e9 77 //wait(1.0);
i_am_kitsune 0:acd3444161e9 78 //led.write(1);
i_am_kitsune 0:acd3444161e9 79 //wait(1.0);
i_am_kitsune 0:acd3444161e9 80 //
i_am_kitsune 0:acd3444161e9 81 // myled = 1; // LED is ON
i_am_kitsune 0:acd3444161e9 82 // wait(0.2); // 200 ms
i_am_kitsune 0:acd3444161e9 83 // myled = 0; // LED is OFF
i_am_kitsune 0:acd3444161e9 84 // wait(1.0); // 1 sec
i_am_kitsune 0:acd3444161e9 85 }
i_am_kitsune 0:acd3444161e9 86 }