fork the master
Dependencies: TextLCD mbed-rtos mbed
Fork of Pacemaker by
Diff: main.cpp
- Revision:
- 5:376358077dc8
- Parent:
- 4:cce9946d9dcd
- Child:
- 8:ce2565cfe709
--- a/main.cpp Sat Nov 29 20:52:33 2014 +0000 +++ b/main.cpp Sat Nov 29 21:21:59 2014 +0000 @@ -22,8 +22,10 @@ #define PULSE_WIDTH_V 200 #define PULSE_WIDTH_A 100 + int LRI_h = 1666; int LRI_l = 666; +int observation_interval=10000; //ms Serial pc(USBTX, USBRX); TextLCD myPanel(p15,p16,p17,p18,p19,p20,TextLCD::LCD16x2); @@ -32,6 +34,8 @@ int a_clock; int v_clock; +int beat; + InterruptIn atrial_int(p17); InterruptIn vent_int(p18); @@ -39,8 +43,10 @@ const int v_pace = 3; //pin 23 v pace output bool aSensed = 0; // 0 means that we are expecting Apace or Asense next -DigitalOut myled(LED1); -//DigitalOut testpin(p6); +DigitalOut led1(LED1); //apace +DigitalOut led2(LED2); //vpace +DigitalOut led3(LED3); //asense +DigitalOut led4(LED4); //vsense void initTimer(); void startTimer(); @@ -57,16 +63,21 @@ void apace() { + led1 = 1; setGPIO(a_pace); wait_us(PULSE_WIDTH_A); - clearGPIO(a_pace); + clearGPIO(a_pace); + led = 0; + } void vpace() { + led2= 1; setGPIO(v_pace); wait_us(PULSE_WIDTH_V); clearGPIO(v_pace); + led2 = 0; } void initGPIO_outputs() @@ -118,7 +129,9 @@ { while(1) { - + wait_ms(observation_interval); + myPanel.printf("BPM: %d\r\n", beat/observation_interval * 60); + beat=0; } } @@ -128,13 +141,17 @@ v_clock = 0; aSensed = 0; } + led3 = 1; + } void vsense() { if ((v_clock >= PVARP_l) && aSensed == 0){ a_clock = 0; aSensed = 1; + beat++; } + led4 = 1; } void button_handler(void const *args) @@ -195,6 +212,7 @@ if (v_clock >= (LRI_h-AVI_l) && aSensed == 0) { a_clock = 0; aSensed = 1; + beat++; //printf("Apace %d\r\n",v_clk); apace(); /* @@ -206,6 +224,7 @@ if ((a_clock >= AVI_h) && aSensed == 1) { v_clock = 0; aSensed = 0; + //led3 = 0; //printf("Vpace %d\r\n",a_clk); /* setGPIO(v_pace); @@ -216,13 +235,16 @@ } v_clock++; a_clock++; + + if(v_clock>500) led3 = 0; + if(a_clock>500) led4 = 0; } } int main (void) { //TODO set parameters - myled = 0; + Thread display(display_thread_handler); Thread keyboard(button_handler);