PARK JAICHANG
/
Nucleo_polar_t34
https://www.adafruit.com/product/1077
main.cpp@0:acd3444161e9, 2018-03-28 (annotated)
- 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?
User | Revision | Line number | New 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 | } |