![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Updated with option to return from BP screen to main screen, resolved screen navigation issues
Dependencies: SDFileSystem TFTLCD_8bit ds3231 program mbed
Fork of poc_dis_5 by
ec_bp.cpp@5:a3ea7c82b7e1, 2017-03-30 (annotated)
- Committer:
- suhasini
- Date:
- Thu Mar 30 11:34:04 2017 +0000
- Revision:
- 5:a3ea7c82b7e1
- Parent:
- 3:9a06c2bed650
PID updation possible, Proper screen navigation enabled, Return functionality from BP to main screen-done, date-time format modified, BP data not saved into SD card
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nikitateggi | 3:9a06c2bed650 | 1 | #include "mbed.h" |
nikitateggi | 3:9a06c2bed650 | 2 | #include "ec_bp.h" |
nikitateggi | 3:9a06c2bed650 | 3 | //#include "ecg_dec.h" |
nikitateggi | 3:9a06c2bed650 | 4 | |
nikitateggi | 3:9a06c2bed650 | 5 | //PIN DECLARATIONS |
nikitateggi | 3:9a06c2bed650 | 6 | //Serial pc(USBTX,USBRX); |
nikitateggi | 3:9a06c2bed650 | 7 | SPI mySpi(PIN_MOSI, PIN_MISO, PIN_SCLK) ; |
nikitateggi | 3:9a06c2bed650 | 8 | DigitalIn DRDY_BAR(PTC8); |
nikitateggi | 3:9a06c2bed650 | 9 | |
nikitateggi | 3:9a06c2bed650 | 10 | DigitalOut CHIPSEL_BAR(PTD0); |
nikitateggi | 3:9a06c2bed650 | 11 | DigitalOut ADS_START(PTC16); |
nikitateggi | 3:9a06c2bed650 | 12 | DigitalOut RESET_BAR(PTC17); |
nikitateggi | 3:9a06c2bed650 | 13 | DigitalOut myled(LED1); |
nikitateggi | 3:9a06c2bed650 | 14 | PwmOut led(PTB18); |
nikitateggi | 3:9a06c2bed650 | 15 | float value = 0; |
nikitateggi | 3:9a06c2bed650 | 16 | unsigned int value1; |
nikitateggi | 3:9a06c2bed650 | 17 | unsigned int value2; |
nikitateggi | 3:9a06c2bed650 | 18 | unsigned int value3; |
nikitateggi | 3:9a06c2bed650 | 19 | unsigned int value4; |
nikitateggi | 3:9a06c2bed650 | 20 | unsigned int value5; |
nikitateggi | 3:9a06c2bed650 | 21 | unsigned int value6; |
nikitateggi | 3:9a06c2bed650 | 22 | unsigned int data1; |
nikitateggi | 3:9a06c2bed650 | 23 | unsigned int count; |
nikitateggi | 3:9a06c2bed650 | 24 | |
nikitateggi | 3:9a06c2bed650 | 25 | //unsigned char chk2= 0; |
nikitateggi | 3:9a06c2bed650 | 26 | //float value = 0; |
nikitateggi | 3:9a06c2bed650 | 27 | /*unsigned int value1 = 0; |
nikitateggi | 3:9a06c2bed650 | 28 | unsigned int value2 = 0; |
nikitateggi | 3:9a06c2bed650 | 29 | unsigned int value3 = 0; |
nikitateggi | 3:9a06c2bed650 | 30 | unsigned int value4 = 0; |
nikitateggi | 3:9a06c2bed650 | 31 | unsigned int value5 = 0; |
nikitateggi | 3:9a06c2bed650 | 32 | unsigned int value6 = 0; |
nikitateggi | 3:9a06c2bed650 | 33 | unsigned int data1 = 0; |
nikitateggi | 3:9a06c2bed650 | 34 | unsigned int count = 0;*/ |
nikitateggi | 3:9a06c2bed650 | 35 | |
nikitateggi | 3:9a06c2bed650 | 36 | //static int32_t ecg_x[500]; |
nikitateggi | 3:9a06c2bed650 | 37 | /* SPI is the spi function written in mbed and mySpi is the instance name*/ |
nikitateggi | 3:9a06c2bed650 | 38 | |
nikitateggi | 3:9a06c2bed650 | 39 | typedef void (*func_ptr)(void) ; /*creates typedef to function pointer, does not take any arguement and returns void*/ |
nikitateggi | 3:9a06c2bed650 | 40 | |
nikitateggi | 3:9a06c2bed650 | 41 | |
nikitateggi | 3:9a06c2bed650 | 42 | void lpf_coef(void); |
nikitateggi | 3:9a06c2bed650 | 43 | float lpf( float coeff[5], float); |
nikitateggi | 3:9a06c2bed650 | 44 | void drdy_int(void); |
nikitateggi | 3:9a06c2bed650 | 45 | /*FILE *sd_openfile(char *buf); |
nikitateggi | 3:9a06c2bed650 | 46 | void sd_write (FILE *n,int value); |
nikitateggi | 3:9a06c2bed650 | 47 | void sd_close(FILE *n); |
nikitateggi | 3:9a06c2bed650 | 48 | time_t rtc_read();*/ |
nikitateggi | 3:9a06c2bed650 | 49 | |
nikitateggi | 3:9a06c2bed650 | 50 | typedef struct _cmd_func { |
nikitateggi | 3:9a06c2bed650 | 51 | char *name ; |
nikitateggi | 3:9a06c2bed650 | 52 | func_ptr func ; |
nikitateggi | 3:9a06c2bed650 | 53 | } cmd_func_type ; |
nikitateggi | 3:9a06c2bed650 | 54 | |
nikitateggi | 3:9a06c2bed650 | 55 | cmd_func_type cmd_list[] = { /*"cmd_func_type cmd_list[]" is same as "struct cmd_list[]"*/ |
nikitateggi | 3:9a06c2bed650 | 56 | {"help", doHelp}, |
nikitateggi | 3:9a06c2bed650 | 57 | {"status", doStatus}, |
nikitateggi | 3:9a06c2bed650 | 58 | {"freq", doFreq}, |
nikitateggi | 3:9a06c2bed650 | 59 | {"mode", doMode}, |
nikitateggi | 3:9a06c2bed650 | 60 | {"bit", doBit}, |
nikitateggi | 3:9a06c2bed650 | 61 | {"write", doWrite}, |
nikitateggi | 3:9a06c2bed650 | 62 | {"read", doRead}, |
nikitateggi | 3:9a06c2bed650 | 63 | {"loop", doLoop}, |
nikitateggi | 3:9a06c2bed650 | 64 | { 0, 0 } |
nikitateggi | 3:9a06c2bed650 | 65 | } ; |
nikitateggi | 3:9a06c2bed650 | 66 | |
nikitateggi | 3:9a06c2bed650 | 67 | func_ptr getFunc(char *cmd) /*here "func_ptr is same as void*/ |
nikitateggi | 3:9a06c2bed650 | 68 | { |
nikitateggi | 3:9a06c2bed650 | 69 | int i = 0 ; |
nikitateggi | 3:9a06c2bed650 | 70 | while(cmd_list[i].name != 0) { |
nikitateggi | 3:9a06c2bed650 | 71 | if (strcmp(cmd, cmd_list[i].name) == 0) { |
nikitateggi | 3:9a06c2bed650 | 72 | return(cmd_list[i].func) ; ; |
nikitateggi | 3:9a06c2bed650 | 73 | } |
nikitateggi | 3:9a06c2bed650 | 74 | i++ ; |
nikitateggi | 3:9a06c2bed650 | 75 | } |
nikitateggi | 3:9a06c2bed650 | 76 | return(0) ; |
nikitateggi | 3:9a06c2bed650 | 77 | } |
nikitateggi | 3:9a06c2bed650 | 78 | |
nikitateggi | 3:9a06c2bed650 | 79 | void doHello() |
nikitateggi | 3:9a06c2bed650 | 80 | { |
nikitateggi | 3:9a06c2bed650 | 81 | printf("=== spi test program ===\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 82 | printf("please set your terminal program\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 83 | printf("local echo on\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 84 | printf("\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 85 | } |
nikitateggi | 3:9a06c2bed650 | 86 | |
nikitateggi | 3:9a06c2bed650 | 87 | |
nikitateggi | 3:9a06c2bed650 | 88 | void setup() |
nikitateggi | 3:9a06c2bed650 | 89 | { |
nikitateggi | 3:9a06c2bed650 | 90 | //initially make all inputs low until power is up and stabilized |
nikitateggi | 3:9a06c2bed650 | 91 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 92 | ADS_START = 0; |
nikitateggi | 3:9a06c2bed650 | 93 | RESET_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 94 | //wait for oscillator to wake up |
nikitateggi | 3:9a06c2bed650 | 95 | wait(1); |
nikitateggi | 3:9a06c2bed650 | 96 | |
nikitateggi | 3:9a06c2bed650 | 97 | CHIPSEL_BAR = 1; |
nikitateggi | 3:9a06c2bed650 | 98 | RESET_BAR = 1; //wait for tpor time |
nikitateggi | 3:9a06c2bed650 | 99 | //wait for power on reset |
nikitateggi | 3:9a06c2bed650 | 100 | wait(1); |
nikitateggi | 3:9a06c2bed650 | 101 | RESET_BAR = 0; // send a reset pulse and wait for t_reset amount of time |
nikitateggi | 3:9a06c2bed650 | 102 | wait(1); |
nikitateggi | 3:9a06c2bed650 | 103 | RESET_BAR = 1;//release the reset |
nikitateggi | 3:9a06c2bed650 | 104 | //Wait for 18 tclks = 36 us |
nikitateggi | 3:9a06c2bed650 | 105 | wait_us(36); |
nikitateggi | 3:9a06c2bed650 | 106 | |
nikitateggi | 3:9a06c2bed650 | 107 | //Device wakes up in RDATAC mode so send SDATAC command to write to registers |
nikitateggi | 3:9a06c2bed650 | 108 | cmdWrite(CMD_SDATAC) ; |
nikitateggi | 3:9a06c2bed650 | 109 | // printf("Device is in SDATAC mode\n"); |
nikitateggi | 3:9a06c2bed650 | 110 | |
nikitateggi | 3:9a06c2bed650 | 111 | regRead(REG_ID); |
nikitateggi | 3:9a06c2bed650 | 112 | printf("DEVICE ID register read from ADS is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 113 | wait(1); |
nikitateggi | 3:9a06c2bed650 | 114 | |
nikitateggi | 3:9a06c2bed650 | 115 | //Since we are using internal 2.42V reference and enable clock on the CLK PIN |
nikitateggi | 3:9a06c2bed650 | 116 | //Write 0xA8 to CONFIG2 register |
nikitateggi | 3:9a06c2bed650 | 117 | regWrite(REG_CONFIG2,no_mode); |
nikitateggi | 3:9a06c2bed650 | 118 | |
nikitateggi | 3:9a06c2bed650 | 119 | //Set continuous sampling mode, 500 SPS |
nikitateggi | 3:9a06c2bed650 | 120 | regWrite(REG_CONFIG1,sps500); |
nikitateggi | 3:9a06c2bed650 | 121 | |
nikitateggi | 3:9a06c2bed650 | 122 | //PGA Gain = 6, inputs shorted for noise measurements |
nikitateggi | 3:9a06c2bed650 | 123 | regWrite(REG_CH1SET, offset_meas); |
nikitateggi | 3:9a06c2bed650 | 124 | |
nikitateggi | 3:9a06c2bed650 | 125 | //read data from CONFIG2 register |
nikitateggi | 3:9a06c2bed650 | 126 | regRead(REG_CONFIG2); |
nikitateggi | 3:9a06c2bed650 | 127 | // printf("REG_CONFIG2 register read from ADS for initial setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 128 | |
nikitateggi | 3:9a06c2bed650 | 129 | //read data from CONFIG1 register |
nikitateggi | 3:9a06c2bed650 | 130 | regRead(REG_CONFIG1); |
nikitateggi | 3:9a06c2bed650 | 131 | // printf("REG_CONFIG1 register read from ADS for initial setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 132 | |
nikitateggi | 3:9a06c2bed650 | 133 | //read data from CONFIG1 register |
nikitateggi | 3:9a06c2bed650 | 134 | regRead(REG_CH1SET); |
nikitateggi | 3:9a06c2bed650 | 135 | // printf("REG_CH1SET register read from ADS for initial setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 136 | } |
nikitateggi | 3:9a06c2bed650 | 137 | |
nikitateggi | 3:9a06c2bed650 | 138 | void testsetup() |
nikitateggi | 3:9a06c2bed650 | 139 | { |
nikitateggi | 3:9a06c2bed650 | 140 | //Send SDATAC command to write to registers to set test signals |
nikitateggi | 3:9a06c2bed650 | 141 | cmdWrite(CMD_SDATAC) ; |
nikitateggi | 3:9a06c2bed650 | 142 | printf("Device is in SDATAC mode\n"); |
nikitateggi | 3:9a06c2bed650 | 143 | |
nikitateggi | 3:9a06c2bed650 | 144 | //Since we are using internal 2.42V reference and enable clock on the CLK PIN |
nikitateggi | 3:9a06c2bed650 | 145 | //Write 0xA3 to CONFIG2 register to set test signal and its freq = 1Hz |
nikitateggi | 3:9a06c2bed650 | 146 | regWrite(REG_CONFIG2,test_mode); |
nikitateggi | 3:9a06c2bed650 | 147 | |
nikitateggi | 3:9a06c2bed650 | 148 | //PGA Gain = 6, test signal selected |
nikitateggi | 3:9a06c2bed650 | 149 | regWrite(REG_CH1SET, test_inp); |
nikitateggi | 3:9a06c2bed650 | 150 | |
nikitateggi | 3:9a06c2bed650 | 151 | //read data from CONFIG2 register |
nikitateggi | 3:9a06c2bed650 | 152 | regRead(REG_CONFIG2); |
nikitateggi | 3:9a06c2bed650 | 153 | printf("REG_CONFIG2 register read from ADS for test signal setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 154 | |
nikitateggi | 3:9a06c2bed650 | 155 | //read data from CONFIG1 register |
nikitateggi | 3:9a06c2bed650 | 156 | regRead(REG_CH1SET); |
nikitateggi | 3:9a06c2bed650 | 157 | printf("REG_CH1SET register read from ADS for test signal setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 158 | } |
nikitateggi | 3:9a06c2bed650 | 159 | |
nikitateggi | 3:9a06c2bed650 | 160 | void ecgsetup() |
nikitateggi | 3:9a06c2bed650 | 161 | { |
nikitateggi | 3:9a06c2bed650 | 162 | cmdWrite(CMD_SDATAC) ; //Set to SDATAC mode to set CH1SET register |
nikitateggi | 3:9a06c2bed650 | 163 | |
nikitateggi | 3:9a06c2bed650 | 164 | regWrite(REG_CONFIG1,sps500); |
nikitateggi | 3:9a06c2bed650 | 165 | regWrite(REG_CONFIG2, default_mode);//put INT_TEST and TEST_FREQ bits to default mode(set those bits to '0') |
nikitateggi | 3:9a06c2bed650 | 166 | regWrite(REG_LOFF, loff_conf); |
nikitateggi | 3:9a06c2bed650 | 167 | regWrite(REG_CH1SET, elec_inp);// Set to read normal electrode input |
nikitateggi | 3:9a06c2bed650 | 168 | regWrite(REG_RLD_SENS, rld_sens_sig);//Set RLD_SENS |
nikitateggi | 3:9a06c2bed650 | 169 | regWrite(REG_LOFF_SENS, loff_sens_sig);//Set LOFF_SENS |
nikitateggi | 3:9a06c2bed650 | 170 | regWrite(REG_MISC1, misc1_inp );//Set RESP1 |
nikitateggi | 3:9a06c2bed650 | 171 | regWrite(REG_MISC2, misc2_inp );//Set RESP2 |
nikitateggi | 3:9a06c2bed650 | 172 | //printf("connect ECG leads\n"); |
nikitateggi | 3:9a06c2bed650 | 173 | wait(0.5); |
nikitateggi | 3:9a06c2bed650 | 174 | regRead(REG_LOFF_STAT);//Read LOFF_STAT register |
nikitateggi | 3:9a06c2bed650 | 175 | printf("REG_LOFF_STAT register read from ADS for ecg setup is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 176 | } |
nikitateggi | 3:9a06c2bed650 | 177 | |
nikitateggi | 3:9a06c2bed650 | 178 | void doHelp(void) |
nikitateggi | 3:9a06c2bed650 | 179 | { |
nikitateggi | 3:9a06c2bed650 | 180 | printf("=== spi test ===\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 181 | printf("commands available\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 182 | printf("help\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 183 | printf("status\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 184 | printf("freq freq_in_hz\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 185 | printf("mode (0 | 1 | 2 | 3)\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 186 | printf("bit (4 - 16)\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 187 | printf("write value\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 188 | printf("read\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 189 | printf("loop number (set repeat number for read/write)\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 190 | } |
nikitateggi | 3:9a06c2bed650 | 191 | |
nikitateggi | 3:9a06c2bed650 | 192 | void doStatus(void) |
nikitateggi | 3:9a06c2bed650 | 193 | { |
nikitateggi | 3:9a06c2bed650 | 194 | printf("=== Status Report ===\n\r") ; |
nikitateggi | 3:9a06c2bed650 | 195 | printf("bits: %d\n\r", bits) ; |
nikitateggi | 3:9a06c2bed650 | 196 | printf("mode: %d\n\r", mode) ; |
nikitateggi | 3:9a06c2bed650 | 197 | printf("freq: %d Hz\n\r", freq) ; |
nikitateggi | 3:9a06c2bed650 | 198 | printf("loop: %d\n\r", loop) ; |
nikitateggi | 3:9a06c2bed650 | 199 | } |
nikitateggi | 3:9a06c2bed650 | 200 | |
nikitateggi | 3:9a06c2bed650 | 201 | void doFreq(void) |
nikitateggi | 3:9a06c2bed650 | 202 | { |
nikitateggi | 3:9a06c2bed650 | 203 | // int freq = 0 ; |
nikitateggi | 3:9a06c2bed650 | 204 | // scanf("%d", &freq) ; |
nikitateggi | 3:9a06c2bed650 | 205 | printf("setting frequency to %d\n\r", freq) ; |
nikitateggi | 3:9a06c2bed650 | 206 | mySpi.frequency(freq) ; |
nikitateggi | 3:9a06c2bed650 | 207 | } |
nikitateggi | 3:9a06c2bed650 | 208 | |
nikitateggi | 3:9a06c2bed650 | 209 | void doMode(void) |
nikitateggi | 3:9a06c2bed650 | 210 | { |
nikitateggi | 3:9a06c2bed650 | 211 | //scanf("%d", &mode) ; |
nikitateggi | 3:9a06c2bed650 | 212 | printf("setting format(%d, %d)\n\r",bits, mode) ; |
nikitateggi | 3:9a06c2bed650 | 213 | mySpi.format(bits, mode) ; |
nikitateggi | 3:9a06c2bed650 | 214 | } |
nikitateggi | 3:9a06c2bed650 | 215 | |
nikitateggi | 3:9a06c2bed650 | 216 | void doBit(void) |
nikitateggi | 3:9a06c2bed650 | 217 | { |
nikitateggi | 3:9a06c2bed650 | 218 | // scanf("%d", &bits) ; |
nikitateggi | 3:9a06c2bed650 | 219 | printf("setting format(%d, %d)\n\r",bits, mode) ; |
nikitateggi | 3:9a06c2bed650 | 220 | mySpi.format(bits, mode) ; |
nikitateggi | 3:9a06c2bed650 | 221 | } |
nikitateggi | 3:9a06c2bed650 | 222 | |
nikitateggi | 3:9a06c2bed650 | 223 | void doWrite(void) |
nikitateggi | 3:9a06c2bed650 | 224 | { |
nikitateggi | 3:9a06c2bed650 | 225 | |
nikitateggi | 3:9a06c2bed650 | 226 | //DRDY_BAR1.disable_irq(); |
nikitateggi | 3:9a06c2bed650 | 227 | |
nikitateggi | 3:9a06c2bed650 | 228 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 229 | // int freq1 = 50000; |
nikitateggi | 3:9a06c2bed650 | 230 | // mySpi.frequency(freq1) ; |
nikitateggi | 3:9a06c2bed650 | 231 | value1 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 232 | value2 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 233 | value3 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 234 | value4 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 235 | value5 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 236 | value6 = mySpi.write(0x00); |
nikitateggi | 3:9a06c2bed650 | 237 | |
nikitateggi | 3:9a06c2bed650 | 238 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 239 | //DRDY_BAR1.enable_irq(); |
nikitateggi | 3:9a06c2bed650 | 240 | } |
nikitateggi | 3:9a06c2bed650 | 241 | |
nikitateggi | 3:9a06c2bed650 | 242 | void doRead(void) |
nikitateggi | 3:9a06c2bed650 | 243 | { |
nikitateggi | 3:9a06c2bed650 | 244 | int dummy = 0 ; |
nikitateggi | 3:9a06c2bed650 | 245 | |
nikitateggi | 3:9a06c2bed650 | 246 | while(!DRDY_BAR) |
nikitateggi | 3:9a06c2bed650 | 247 | ADS_START = 0; |
nikitateggi | 3:9a06c2bed650 | 248 | |
nikitateggi | 3:9a06c2bed650 | 249 | value = mySpi.write(dummy) ; |
nikitateggi | 3:9a06c2bed650 | 250 | |
nikitateggi | 3:9a06c2bed650 | 251 | } |
nikitateggi | 3:9a06c2bed650 | 252 | |
nikitateggi | 3:9a06c2bed650 | 253 | void doLoop(void) |
nikitateggi | 3:9a06c2bed650 | 254 | { |
nikitateggi | 3:9a06c2bed650 | 255 | // scanf("%d", &loop) ; |
nikitateggi | 3:9a06c2bed650 | 256 | printf("repeat number has been set to %d\n\r", loop) ; |
nikitateggi | 3:9a06c2bed650 | 257 | } |
nikitateggi | 3:9a06c2bed650 | 258 | |
nikitateggi | 3:9a06c2bed650 | 259 | void cmdWrite(int data) |
nikitateggi | 3:9a06c2bed650 | 260 | { |
nikitateggi | 3:9a06c2bed650 | 261 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 262 | mySpi.write(data) ; |
nikitateggi | 3:9a06c2bed650 | 263 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 264 | CHIPSEL_BAR = 1; |
nikitateggi | 3:9a06c2bed650 | 265 | } |
nikitateggi | 3:9a06c2bed650 | 266 | |
nikitateggi | 3:9a06c2bed650 | 267 | void regWrite(int address, int data) |
nikitateggi | 3:9a06c2bed650 | 268 | { |
nikitateggi | 3:9a06c2bed650 | 269 | int data_to_send = CMD_WREG << 5; |
nikitateggi | 3:9a06c2bed650 | 270 | data_to_send = data_to_send | address; |
nikitateggi | 3:9a06c2bed650 | 271 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 272 | mySpi.write(data_to_send); |
nikitateggi | 3:9a06c2bed650 | 273 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 274 | mySpi.write(0x00) ; |
nikitateggi | 3:9a06c2bed650 | 275 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 276 | mySpi.write(data) ; |
nikitateggi | 3:9a06c2bed650 | 277 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 278 | CHIPSEL_BAR = 1; |
nikitateggi | 3:9a06c2bed650 | 279 | } |
nikitateggi | 3:9a06c2bed650 | 280 | |
nikitateggi | 3:9a06c2bed650 | 281 | void regRead(int address) |
nikitateggi | 3:9a06c2bed650 | 282 | { |
nikitateggi | 3:9a06c2bed650 | 283 | int data_to_receive = CMD_RREG << 5; |
nikitateggi | 3:9a06c2bed650 | 284 | data_to_receive = data_to_receive | address; |
nikitateggi | 3:9a06c2bed650 | 285 | CHIPSEL_BAR = 0; |
nikitateggi | 3:9a06c2bed650 | 286 | mySpi.write(data_to_receive); |
nikitateggi | 3:9a06c2bed650 | 287 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 288 | mySpi.write(0x00) ; |
nikitateggi | 3:9a06c2bed650 | 289 | wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 290 | data1 = mySpi.write(0x00) ; |
nikitateggi | 3:9a06c2bed650 | 291 | |
nikitateggi | 3:9a06c2bed650 | 292 | //printf("DEVICE ID register read from ADS is= 0x%X\n",data1); |
nikitateggi | 3:9a06c2bed650 | 293 | |
nikitateggi | 3:9a06c2bed650 | 294 | //wait_ms(1); |
nikitateggi | 3:9a06c2bed650 | 295 | CHIPSEL_BAR = 1; |
nikitateggi | 3:9a06c2bed650 | 296 | } |
nikitateggi | 3:9a06c2bed650 | 297 | |
nikitateggi | 3:9a06c2bed650 | 298 | |
nikitateggi | 3:9a06c2bed650 | 299 | |
nikitateggi | 3:9a06c2bed650 | 300 | void freqset() |
nikitateggi | 3:9a06c2bed650 | 301 | { |
nikitateggi | 3:9a06c2bed650 | 302 | mySpi.frequency(freq) ; |
nikitateggi | 3:9a06c2bed650 | 303 | mySpi.format(bits, mode) ; |
nikitateggi | 3:9a06c2bed650 | 304 | } |
nikitateggi | 3:9a06c2bed650 | 305 | |
nikitateggi | 3:9a06c2bed650 | 306 | |
nikitateggi | 3:9a06c2bed650 | 307 | |
nikitateggi | 3:9a06c2bed650 | 308 | void setupfunc() |
nikitateggi | 3:9a06c2bed650 | 309 | { |
nikitateggi | 3:9a06c2bed650 | 310 | setup() ; |
nikitateggi | 3:9a06c2bed650 | 311 | cmdWrite(CMD_RDATAC) ; |
nikitateggi | 3:9a06c2bed650 | 312 | ADS_START = 1; |
nikitateggi | 3:9a06c2bed650 | 313 | } |
nikitateggi | 3:9a06c2bed650 | 314 | |
nikitateggi | 3:9a06c2bed650 | 315 | void ecgsetupfunc() |
nikitateggi | 3:9a06c2bed650 | 316 | { |
nikitateggi | 3:9a06c2bed650 | 317 | ecgsetup(); // To set the ADS1291 registers for ECG signal generation |
nikitateggi | 3:9a06c2bed650 | 318 | cmdWrite(CMD_RDATAC) ; |
nikitateggi | 3:9a06c2bed650 | 319 | ADS_START = 1; |
nikitateggi | 3:9a06c2bed650 | 320 | |
nikitateggi | 3:9a06c2bed650 | 321 | } |
nikitateggi | 3:9a06c2bed650 | 322 | |
nikitateggi | 3:9a06c2bed650 | 323 | void ecgtestsetupfunc() |
nikitateggi | 3:9a06c2bed650 | 324 | { |
nikitateggi | 3:9a06c2bed650 | 325 | testsetup(); // To set the ADS1291 registers for ECG signal generation |
nikitateggi | 3:9a06c2bed650 | 326 | cmdWrite(CMD_RDATAC) ; |
nikitateggi | 3:9a06c2bed650 | 327 | ADS_START = 1; |
nikitateggi | 3:9a06c2bed650 | 328 | |
nikitateggi | 3:9a06c2bed650 | 329 | } |
nikitateggi | 3:9a06c2bed650 | 330 | int readvalue() |
nikitateggi | 3:9a06c2bed650 | 331 | { |
nikitateggi | 3:9a06c2bed650 | 332 | int concatenate_value; |
nikitateggi | 3:9a06c2bed650 | 333 | while(DRDY_BAR); |
nikitateggi | 3:9a06c2bed650 | 334 | doWrite() ; |
nikitateggi | 3:9a06c2bed650 | 335 | concatenate_value = ((value4<< 16)|(value5 <<8) |(value6)); |
nikitateggi | 3:9a06c2bed650 | 336 | |
nikitateggi | 3:9a06c2bed650 | 337 | return concatenate_value; |
nikitateggi | 3:9a06c2bed650 | 338 | } |
nikitateggi | 3:9a06c2bed650 | 339 | |
nikitateggi | 3:9a06c2bed650 | 340 | |
nikitateggi | 3:9a06c2bed650 | 341 | |
nikitateggi | 3:9a06c2bed650 | 342 | |
nikitateggi | 3:9a06c2bed650 | 343 |