mbed heart
Dependencies: TextLCD mbed-rtos mbed
PMTest.cpp
- Committer:
- chadnach1
- Date:
- 2015-12-02
- Revision:
- 1:c0fdd901d5d5
- Parent:
- 0:54ec65701097
File content as of revision 1:c0fdd901d5d5:
#include "mbed.h" #include "LPC17xx.h" #include "TextLCD.h" #include "rtos.h" #include "Thread.h" DigitalOut vsense(p23); DigitalOut asense(p24); DigitalIn apace(p22); DigitalIn vpace(p21); Serial serial_in(USBTX, USBRX); int test_time_count; int curr_test; int minwaitV; int minwaitA; int needs_num_input = 0; enum mode{RANDOM,MANUAL,TEST}; mode test_curr_mode = RANDOM; Timer t; void random_heart(){ t.reset(); t.start(); while(test_curr_mode == RANDOM){ int r = rand(); if(r%2 == 0){ if(t.read() > minwaitA){ asense = 1; Thread::wait(10); asense = 0; } } else { if(t.read() > minwaitV){ vsense = 1; Thread::wait(10); vsense = 0; } } t.reset(); } } void kbd_intrp(){ char a = serial_in.getc(); if(needs_num_input){ // DO O handling needs_num_input = 0; return; } if(a == 'R'){ test_curr_mode = RANDOM; }else if(a == 'T'){ test_curr_mode = TEST; }else if(a == 'M'){ test_curr_mode = MANUAL; } if(a == 'A' && test_curr_mode == MANUAL){ asense = 1; Thread::wait(10); asense = 0; } if(a == 'V' && test_curr_mode == MANUAL){ vsense = 1; Thread::wait(10); vsense = 0; } } // interrupt function void interrupt_and_run_test(){ // zero timer, set for 1ms interrupt // wait for atrial pulse // check if timer was within event // send vsense // send asense // check if timer was in event // wait for vpace // wait for atrial pulse // check if timer was within event } int main(void){ while(1){ random_heart(); } }