a pacemaker

Dependencies:   mbed

Committer:
kohlerba
Date:
Wed Oct 26 18:20:43 2016 +0000
Revision:
3:334300ac49e5
Parent:
2:ab8469051a2d
Changed the functions and modules.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kohlerba 0:9e97accb2a4c 1 #include "clock.h"
kohlerba 0:9e97accb2a4c 2
kohlerba 3:334300ac49e5 3 Ticker counter_ticker;
kohlerba 3:334300ac49e5 4 Ticker toggle_ticker;
kohlerba 3:334300ac49e5 5
kohlerba 0:9e97accb2a4c 6 double counter = 0;
kohlerba 3:334300ac49e5 7 int atrial_logic = 0;
kohlerba 3:334300ac49e5 8 double atrial_counter = 0;
kohlerba 3:334300ac49e5 9 double atrial_pulse_start_time = 0;
kohlerba 3:334300ac49e5 10 int ventricle_logic = 0;
kohlerba 3:334300ac49e5 11 double ventricle_counter = 0;
kohlerba 3:334300ac49e5 12 double ventricle_pulse_start_time = 0;
kohlerba 3:334300ac49e5 13 int toggle_switch = 0;
kohlerba 0:9e97accb2a4c 14
kohlerba 1:446bd28a1f19 15 int start_clock(void){
kohlerba 3:334300ac49e5 16 counter_ticker.attach(&increment_counter, 0.0001);
kohlerba 3:334300ac49e5 17 return 1;
kohlerba 3:334300ac49e5 18 }
kohlerba 3:334300ac49e5 19
kohlerba 3:334300ac49e5 20 int start_toggler(double switch_time){
kohlerba 3:334300ac49e5 21 toggle_ticker.attach(&toggler, switch_time);
kohlerba 1:446bd28a1f19 22 return 1;
kohlerba 0:9e97accb2a4c 23 }
kohlerba 0:9e97accb2a4c 24
kohlerba 3:334300ac49e5 25 void increment_counter(void){
kohlerba 0:9e97accb2a4c 26 counter += 0.0001;
kohlerba 3:334300ac49e5 27
kohlerba 3:334300ac49e5 28 //records time at the rising edge of an atrial pulse (most recent only)
kohlerba 3:334300ac49e5 29 if ((atrial_logic != 0) && (atrial_counter == 0)){
kohlerba 3:334300ac49e5 30 atrial_pulse_start_time = get_time();
kohlerba 3:334300ac49e5 31 }
kohlerba 3:334300ac49e5 32
kohlerba 3:334300ac49e5 33 if (atrial_logic != 0){
kohlerba 3:334300ac49e5 34 atrial_counter += 0.0001;
kohlerba 3:334300ac49e5 35 }
kohlerba 3:334300ac49e5 36 else {
kohlerba 3:334300ac49e5 37 atrial_counter = 0;
kohlerba 3:334300ac49e5 38 }
kohlerba 3:334300ac49e5 39
kohlerba 3:334300ac49e5 40 //records time at the rising edge of a ventricle pulse (most recent only)
kohlerba 3:334300ac49e5 41 if ((ventricle_logic != 0) && (ventricle_counter == 0)){
kohlerba 3:334300ac49e5 42 ventricle_pulse_start_time = get_time();
kohlerba 3:334300ac49e5 43 }
kohlerba 3:334300ac49e5 44
kohlerba 3:334300ac49e5 45 if (ventricle_logic != 0){
kohlerba 3:334300ac49e5 46 ventricle_counter += 0.0001;
kohlerba 3:334300ac49e5 47 }
kohlerba 3:334300ac49e5 48
kohlerba 3:334300ac49e5 49 else {
kohlerba 3:334300ac49e5 50 ventricle_counter = 0;
kohlerba 3:334300ac49e5 51 }
kohlerba 3:334300ac49e5 52 }
kohlerba 3:334300ac49e5 53
kohlerba 3:334300ac49e5 54 void toggler(void){
kohlerba 3:334300ac49e5 55 if(!toggle_switch){
kohlerba 3:334300ac49e5 56 toggle_switch = 1;}
kohlerba 3:334300ac49e5 57 else{
kohlerba 3:334300ac49e5 58 toggle_switch = 0;}
kohlerba 0:9e97accb2a4c 59 }
kohlerba 0:9e97accb2a4c 60
kohlerba 0:9e97accb2a4c 61 double get_time(void){
kohlerba 0:9e97accb2a4c 62 return counter;
kohlerba 0:9e97accb2a4c 63 }
kohlerba 3:334300ac49e5 64
kohlerba 3:334300ac49e5 65 int get_atrial_logic(void){
kohlerba 3:334300ac49e5 66 return atrial_logic;
kohlerba 3:334300ac49e5 67 }
kohlerba 3:334300ac49e5 68
kohlerba 3:334300ac49e5 69 int set_atrial_logic(int logic){
kohlerba 3:334300ac49e5 70 atrial_logic = logic;
kohlerba 3:334300ac49e5 71 return 1;
kohlerba 3:334300ac49e5 72 }
kohlerba 3:334300ac49e5 73
kohlerba 3:334300ac49e5 74 int get_ventricle_logic(void){
kohlerba 3:334300ac49e5 75 return ventricle_logic;
kohlerba 3:334300ac49e5 76 }
kohlerba 3:334300ac49e5 77
kohlerba 3:334300ac49e5 78 int set_ventricle_logic(int logic){
kohlerba 3:334300ac49e5 79 ventricle_logic = logic;
kohlerba 3:334300ac49e5 80 return 1;
kohlerba 3:334300ac49e5 81 }
kohlerba 3:334300ac49e5 82
kohlerba 3:334300ac49e5 83 double get_ventricle_counter(void){
kohlerba 3:334300ac49e5 84 return ventricle_counter;
kohlerba 3:334300ac49e5 85 }
kohlerba 3:334300ac49e5 86
kohlerba 3:334300ac49e5 87 double get_atrial_counter(void){
kohlerba 3:334300ac49e5 88 return atrial_counter;
kohlerba 3:334300ac49e5 89 }