serial teste pulga to pulga
Source/main.cpp@1:10de89ea1f70, 2020-05-02 (annotated)
- Committer:
- ruschigo
- Date:
- Sat May 02 03:01:56 2020 +0000
- Revision:
- 1:10de89ea1f70
- Child:
- 2:b39f5ce4d5bd
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ruschigo | 1:10de89ea1f70 | 1 | #include "definitions.txt" |
ruschigo | 1:10de89ea1f70 | 2 | |
ruschigo | 1:10de89ea1f70 | 3 | |
ruschigo | 1:10de89ea1f70 | 4 | /*Defines for PicID of display*/ |
ruschigo | 1:10de89ea1f70 | 5 | #define SCREEN_OFF 0x00 |
ruschigo | 1:10de89ea1f70 | 6 | #define SCREEN_STARTUP 0x01 |
ruschigo | 1:10de89ea1f70 | 7 | #define SCREEN_INIT 10 |
ruschigo | 1:10de89ea1f70 | 8 | #define SCREEN_CALIBRATING 0x14 |
ruschigo | 1:10de89ea1f70 | 9 | #define SCREEN_MAIN_MENU 0x28 |
ruschigo | 1:10de89ea1f70 | 10 | #define SCREEN_IN_OPERATION 0x32 |
ruschigo | 1:10de89ea1f70 | 11 | |
ruschigo | 1:10de89ea1f70 | 12 | #define OPTION_CMD_VP 0x8/* OKadress to write cmd, send from display to mcu |
ruschigo | 1:10de89ea1f70 | 13 | the value in this address must be the ascii value for the char*/ |
ruschigo | 1:10de89ea1f70 | 14 | #define MOV_MOTOR_VP 0x102 |
ruschigo | 1:10de89ea1f70 | 15 | #define DRIVE_PRESSURE_VP 0x100 //Pressao P.P tela 40 |
ruschigo | 1:10de89ea1f70 | 16 | #define PEEP_TARGET_VP 0x340 //OK Pressao Peep tela 40 |
ruschigo | 1:10de89ea1f70 | 17 | #define TINS_VP 0x110 //T. INspiracao tela40 |
ruschigo | 1:10de89ea1f70 | 18 | #define BPM_VP 0x120 //Bpm tela 40 |
ruschigo | 1:10de89ea1f70 | 19 | #define BREATH_TURN_ONOFF_VP 0x03E1//OK Botão Inicia da tela 40 |
ruschigo | 1:10de89ea1f70 | 20 | #define ASSISTED_SENSIBILITY_VP 0x350 //Modo Assistido tela 40 |
ruschigo | 1:10de89ea1f70 | 21 | #define KI_VP 0x110 |
ruschigo | 1:10de89ea1f70 | 22 | #define KP_VP 0x112 |
ruschigo | 1:10de89ea1f70 | 23 | #define KD_VP 0x114 |
ruschigo | 1:10de89ea1f70 | 24 | #define FIO2_VP 0x125 //FiO2 Tela 40 |
ruschigo | 1:10de89ea1f70 | 25 | #define ONOFF_ASSISTED_MODE_VP 0x170 //MODO ASSISTIDO tela 40 |
ruschigo | 1:10de89ea1f70 | 26 | |
ruschigo | 1:10de89ea1f70 | 27 | Timer timer_main; |
ruschigo | 1:10de89ea1f70 | 28 | |
ruschigo | 1:10de89ea1f70 | 29 | RawSerial serial_to_pulga(P0_11, P0_8); |
ruschigo | 1:10de89ea1f70 | 30 | |
ruschigo | 1:10de89ea1f70 | 31 | float rx_pot[4]; |
ruschigo | 1:10de89ea1f70 | 32 | |
ruschigo | 1:10de89ea1f70 | 33 | /*convert float data to fixed point data type*/ |
ruschigo | 1:10de89ea1f70 | 34 | uint16_t float_to_fixed(float input, int fix_bits) |
ruschigo | 1:10de89ea1f70 | 35 | { |
ruschigo | 1:10de89ea1f70 | 36 | return (uint16_t)(input * (1 << fix_bits)); |
ruschigo | 1:10de89ea1f70 | 37 | } |
ruschigo | 1:10de89ea1f70 | 38 | |
ruschigo | 1:10de89ea1f70 | 39 | |
ruschigo | 1:10de89ea1f70 | 40 | |
ruschigo | 1:10de89ea1f70 | 41 | /*Do the scale converstion between analogic input (0 - 1) to Scale type wished |
ruschigo | 1:10de89ea1f70 | 42 | @scale: scale to convert the pot val |
ruschigo | 1:10de89ea1f70 | 43 | @pot_val: Analog input from potentiometer, it will take only 2 decimal digits, |
ruschigo | 1:10de89ea1f70 | 44 | it is necessary to avoid floating of number to control code |
ruschigo | 1:10de89ea1f70 | 45 | */ |
ruschigo | 1:10de89ea1f70 | 46 | float calc_scaled_value(unsigned int scale, float pot_val){ |
ruschigo | 1:10de89ea1f70 | 47 | float ret; |
ruschigo | 1:10de89ea1f70 | 48 | int temp; |
ruschigo | 1:10de89ea1f70 | 49 | temp = (pot_val * 100); |
ruschigo | 1:10de89ea1f70 | 50 | pot_val = (temp / 100); |
ruschigo | 1:10de89ea1f70 | 51 | switch(scale){ |
ruschigo | 1:10de89ea1f70 | 52 | case SCALE_PP_PRESSURE: |
ruschigo | 1:10de89ea1f70 | 53 | ret = (pot_val * 34) + 1; |
ruschigo | 1:10de89ea1f70 | 54 | break; |
ruschigo | 1:10de89ea1f70 | 55 | case SCALE_PEEP_PRESSURE: |
ruschigo | 1:10de89ea1f70 | 56 | ret = (10 * pot_val) + 5; |
ruschigo | 1:10de89ea1f70 | 57 | break; |
ruschigo | 1:10de89ea1f70 | 58 | case SCALE_BPM: |
ruschigo | 1:10de89ea1f70 | 59 | ret = (20 * pot_val) + 10; |
ruschigo | 1:10de89ea1f70 | 60 | break; |
ruschigo | 1:10de89ea1f70 | 61 | case SCALE_TINSP: |
ruschigo | 1:10de89ea1f70 | 62 | ret = (2.5 * pot_val) + 0.5; |
ruschigo | 1:10de89ea1f70 | 63 | break; |
ruschigo | 1:10de89ea1f70 | 64 | case SCALE_FIO2: |
ruschigo | 1:10de89ea1f70 | 65 | ret = (79 * pot_val) + 21; |
ruschigo | 1:10de89ea1f70 | 66 | break; |
ruschigo | 1:10de89ea1f70 | 67 | case SCALE_SENS_ASSISTED_MOD: |
ruschigo | 1:10de89ea1f70 | 68 | ret = (9 * pot_val) + 1; |
ruschigo | 1:10de89ea1f70 | 69 | break; |
ruschigo | 1:10de89ea1f70 | 70 | default: |
ruschigo | 1:10de89ea1f70 | 71 | ret = pot_val; |
ruschigo | 1:10de89ea1f70 | 72 | break; |
ruschigo | 1:10de89ea1f70 | 73 | } |
ruschigo | 1:10de89ea1f70 | 74 | return ret; |
ruschigo | 1:10de89ea1f70 | 75 | } |
ruschigo | 1:10de89ea1f70 | 76 | |
ruschigo | 1:10de89ea1f70 | 77 | |
ruschigo | 1:10de89ea1f70 | 78 | int update_parameter(float scaled_value, uint16_t vp, float min, float max, int fix_bits){ |
ruschigo | 1:10de89ea1f70 | 79 | uint16_t data[1]; |
ruschigo | 1:10de89ea1f70 | 80 | uint16_t aux; |
ruschigo | 1:10de89ea1f70 | 81 | if(scaled_value > max) scaled_value = max; |
ruschigo | 1:10de89ea1f70 | 82 | if(scaled_value < min) scaled_value = min; |
ruschigo | 1:10de89ea1f70 | 83 | if(fix_bits >0){ |
ruschigo | 1:10de89ea1f70 | 84 | scaled_value = scaled_value * 10; |
ruschigo | 1:10de89ea1f70 | 85 | data[0] = (uint16_t)scaled_value; |
ruschigo | 1:10de89ea1f70 | 86 | } |
ruschigo | 1:10de89ea1f70 | 87 | else |
ruschigo | 1:10de89ea1f70 | 88 | data[0] = (uint16_t)scaled_value; |
ruschigo | 1:10de89ea1f70 | 89 | proculus_set_vp(0x5, vp, data); |
ruschigo | 1:10de89ea1f70 | 90 | return 0; |
ruschigo | 1:10de89ea1f70 | 91 | } |
ruschigo | 1:10de89ea1f70 | 92 | |
ruschigo | 1:10de89ea1f70 | 93 | |
ruschigo | 1:10de89ea1f70 | 94 | |
ruschigo | 1:10de89ea1f70 | 95 | /*specific routine to get the screen at rx irq routine*/ |
ruschigo | 1:10de89ea1f70 | 96 | void get_screen_at_irq(){ |
ruschigo | 1:10de89ea1f70 | 97 | proculus_get_ctrl(0x3, PIC_ID_H, 0x2); |
ruschigo | 1:10de89ea1f70 | 98 | } |
ruschigo | 1:10de89ea1f70 | 99 | |
ruschigo | 1:10de89ea1f70 | 100 | void update_screen(){ |
ruschigo | 1:10de89ea1f70 | 101 | //update P.P Pressure |
ruschigo | 1:10de89ea1f70 | 102 | update_parameter(calc_scaled_value(SCALE_PP_PRESSURE, rx_pot[0]), |
ruschigo | 1:10de89ea1f70 | 103 | DRIVE_PRESSURE_VP, 1.0, 35, 1 |
ruschigo | 1:10de89ea1f70 | 104 | ); |
ruschigo | 1:10de89ea1f70 | 105 | //update BPM ok |
ruschigo | 1:10de89ea1f70 | 106 | update_parameter(calc_scaled_value(SCALE_BPM, rx_pot[1]), |
ruschigo | 1:10de89ea1f70 | 107 | BPM_VP, 10, 30, 0 |
ruschigo | 1:10de89ea1f70 | 108 | ); |
ruschigo | 1:10de89ea1f70 | 109 | //update TINSP |
ruschigo | 1:10de89ea1f70 | 110 | update_parameter(calc_scaled_value(SCALE_TINSP, rx_pot[2]), |
ruschigo | 1:10de89ea1f70 | 111 | TINS_VP, 0.5, 3.0, 1 |
ruschigo | 1:10de89ea1f70 | 112 | ); |
ruschigo | 1:10de89ea1f70 | 113 | //update FIO2 (Oxigen%) |
ruschigo | 1:10de89ea1f70 | 114 | update_parameter(calc_scaled_value(SCALE_FIO2, rx_pot[3]), |
ruschigo | 1:10de89ea1f70 | 115 | FIO2_VP, 21, 100, 0 |
ruschigo | 1:10de89ea1f70 | 116 | ); |
ruschigo | 1:10de89ea1f70 | 117 | } |
ruschigo | 1:10de89ea1f70 | 118 | |
ruschigo | 1:10de89ea1f70 | 119 | int bc = 0;//byte couter |
ruschigo | 1:10de89ea1f70 | 120 | int i_rx = 0;//counter to start receive rx at serial |
ruschigo | 1:10de89ea1f70 | 121 | |
ruschigo | 1:10de89ea1f70 | 122 | #define DELAY_UART 2000 //us |
ruschigo | 1:10de89ea1f70 | 123 | void serial_rx_irq(){ |
ruschigo | 1:10de89ea1f70 | 124 | int time_us; |
ruschigo | 1:10de89ea1f70 | 125 | char debug_msg[100]; |
ruschigo | 1:10de89ea1f70 | 126 | char temp_char[10]; |
ruschigo | 1:10de89ea1f70 | 127 | char rx_buffer[50] = "0"; |
ruschigo | 1:10de89ea1f70 | 128 | int i = 0, j=0, k; |
ruschigo | 1:10de89ea1f70 | 129 | int bytes_to_rcv = 0; |
ruschigo | 1:10de89ea1f70 | 130 | struct proculus_pkt pkt; //to manage data |
ruschigo | 1:10de89ea1f70 | 131 | uint16_t data[255];//to store data |
ruschigo | 1:10de89ea1f70 | 132 | pkt.buffer = data; |
ruschigo | 1:10de89ea1f70 | 133 | int unknow = 1;//if unknow pkt come |
ruschigo | 1:10de89ea1f70 | 134 | /* |
ruschigo | 1:10de89ea1f70 | 135 | *Never remove the timer serial_timer, it keep the mininum time between |
ruschigo | 1:10de89ea1f70 | 136 | *two uart datas, if you have problem with serial, try change the DELAY_UART |
ruschigo | 1:10de89ea1f70 | 137 | *value, mbed api do not says anything about this timing issue |
ruschigo | 1:10de89ea1f70 | 138 | */ |
ruschigo | 1:10de89ea1f70 | 139 | serial_timer.reset();//restart timer |
ruschigo | 1:10de89ea1f70 | 140 | serial_timer.start(); |
ruschigo | 1:10de89ea1f70 | 141 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 142 | while(time_us<DELAY_UART){ |
ruschigo | 1:10de89ea1f70 | 143 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 144 | } |
ruschigo | 1:10de89ea1f70 | 145 | //if(time_us >= DELAY_UART) |
ruschigo | 1:10de89ea1f70 | 146 | //{ |
ruschigo | 1:10de89ea1f70 | 147 | /*if(serial_rx_buffer[0] != 0x5a){ |
ruschigo | 1:10de89ea1f70 | 148 | i_rx = 0; |
ruschigo | 1:10de89ea1f70 | 149 | //bc = 255; |
ruschigo | 1:10de89ea1f70 | 150 | } |
ruschigo | 1:10de89ea1f70 | 151 | if(i_rx >1 && serial_rx_buffer[1] != 0xa5){ |
ruschigo | 1:10de89ea1f70 | 152 | i_rx = 0; |
ruschigo | 1:10de89ea1f70 | 153 | //bc = 255; |
ruschigo | 1:10de89ea1f70 | 154 | }*/ |
ruschigo | 1:10de89ea1f70 | 155 | |
ruschigo | 1:10de89ea1f70 | 156 | while(serial1.readable()){//get only one byte per interrupt |
ruschigo | 1:10de89ea1f70 | 157 | serial_timer.reset();//restart timer |
ruschigo | 1:10de89ea1f70 | 158 | serial_timer.start(); |
ruschigo | 1:10de89ea1f70 | 159 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 160 | while(time_us<DELAY_UART){ |
ruschigo | 1:10de89ea1f70 | 161 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 162 | } |
ruschigo | 1:10de89ea1f70 | 163 | if(serial_rx_buffer[0] != 0x5a){ |
ruschigo | 1:10de89ea1f70 | 164 | i_rx = 0; |
ruschigo | 1:10de89ea1f70 | 165 | //bc = 255; |
ruschigo | 1:10de89ea1f70 | 166 | } |
ruschigo | 1:10de89ea1f70 | 167 | if(i_rx >1 && serial_rx_buffer[1] != 0xa5){ |
ruschigo | 1:10de89ea1f70 | 168 | i_rx = 0; |
ruschigo | 1:10de89ea1f70 | 169 | //bc = 255; |
ruschigo | 1:10de89ea1f70 | 170 | } |
ruschigo | 1:10de89ea1f70 | 171 | serial_rx_buffer[i_rx] = serial1.getc(); |
ruschigo | 1:10de89ea1f70 | 172 | if(i_rx == 2)//get bc(how many byts will come |
ruschigo | 1:10de89ea1f70 | 173 | bc = serial_rx_buffer[2]; |
ruschigo | 1:10de89ea1f70 | 174 | //sprintf(debug_msg,"serial_rx_buffer[%d] = %x\n",i_rx ,serial_rx_buffer[i_rx]); |
ruschigo | 1:10de89ea1f70 | 175 | //pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 176 | if(bc > 0 && i_rx >2)//avoid decrement it when it was got |
ruschigo | 1:10de89ea1f70 | 177 | bc--; |
ruschigo | 1:10de89ea1f70 | 178 | i_rx++; |
ruschigo | 1:10de89ea1f70 | 179 | } |
ruschigo | 1:10de89ea1f70 | 180 | |
ruschigo | 1:10de89ea1f70 | 181 | /*if(i_rx == 2)//get bc(how many byts will come |
ruschigo | 1:10de89ea1f70 | 182 | bc = serial_rx_buffer[2];*/ |
ruschigo | 1:10de89ea1f70 | 183 | |
ruschigo | 1:10de89ea1f70 | 184 | //} |
ruschigo | 1:10de89ea1f70 | 185 | /*while(serial1.readable()){ |
ruschigo | 1:10de89ea1f70 | 186 | serial_rx_buffer[i] = serial1.getc(); |
ruschigo | 1:10de89ea1f70 | 187 | serial_timer.reset(); |
ruschigo | 1:10de89ea1f70 | 188 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 189 | while(time_us < DELAY_UART) |
ruschigo | 1:10de89ea1f70 | 190 | { |
ruschigo | 1:10de89ea1f70 | 191 | time_us = serial_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 192 | } |
ruschigo | 1:10de89ea1f70 | 193 | i++; |
ruschigo | 1:10de89ea1f70 | 194 | }*/ |
ruschigo | 1:10de89ea1f70 | 195 | //serial_timer.reset();//restart timer |
ruschigo | 1:10de89ea1f70 | 196 | //serial_timer.start(); |
ruschigo | 1:10de89ea1f70 | 197 | serial_timer.stop(); |
ruschigo | 1:10de89ea1f70 | 198 | //j = 0; |
ruschigo | 1:10de89ea1f70 | 199 | //sprintf(debug_msg, "rx_bytes:%d \n bc = %d\n", i_rx, bc); |
ruschigo | 1:10de89ea1f70 | 200 | //pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 201 | if(bc == 0 && i_rx >0){//packt was received |
ruschigo | 1:10de89ea1f70 | 202 | /*if(serial_rx_buffer[2] >= 0x80 && serial_rx_buffer[2] <= 0x84) |
ruschigo | 1:10de89ea1f70 | 203 | { |
ruschigo | 1:10de89ea1f70 | 204 | serial_to_proculus_pkt_2(serial_rx_buffer, &pkt); |
ruschigo | 1:10de89ea1f70 | 205 | unknow=0; |
ruschigo | 1:10de89ea1f70 | 206 | }*/ |
ruschigo | 1:10de89ea1f70 | 207 | if(serial_rx_buffer[3] >= 0x80 && serial_rx_buffer[3] <= 0x84) |
ruschigo | 1:10de89ea1f70 | 208 | { |
ruschigo | 1:10de89ea1f70 | 209 | serial_to_proculus_pkt(serial_rx_buffer, &pkt); |
ruschigo | 1:10de89ea1f70 | 210 | unknow=0; |
ruschigo | 1:10de89ea1f70 | 211 | } |
ruschigo | 1:10de89ea1f70 | 212 | else |
ruschigo | 1:10de89ea1f70 | 213 | unknow = 1;//received something unknow |
ruschigo | 1:10de89ea1f70 | 214 | } |
ruschigo | 1:10de89ea1f70 | 215 | |
ruschigo | 1:10de89ea1f70 | 216 | if(unknow == 0){ |
ruschigo | 1:10de89ea1f70 | 217 | if(pkt.cmd == W_VP){ |
ruschigo | 1:10de89ea1f70 | 218 | switch(pkt.address){ |
ruschigo | 1:10de89ea1f70 | 219 | case PEEP_TARGET_VP: |
ruschigo | 1:10de89ea1f70 | 220 | display_option = 'e'; |
ruschigo | 1:10de89ea1f70 | 221 | display_data = pkt.buffer[0];//ISSUE is this data in fix point? |
ruschigo | 1:10de89ea1f70 | 222 | display_ctrl = DISPLAY_CMD_DATA_ARRIVE; |
ruschigo | 1:10de89ea1f70 | 223 | break; |
ruschigo | 1:10de89ea1f70 | 224 | case ASSISTED_SENSIBILITY_VP: |
ruschigo | 1:10de89ea1f70 | 225 | display_option = 's'; |
ruschigo | 1:10de89ea1f70 | 226 | display_data = pkt.buffer[0];//ISSUE is this data in fix point? |
ruschigo | 1:10de89ea1f70 | 227 | display_ctrl = DISPLAY_CMD_DATA_ARRIVE; |
ruschigo | 1:10de89ea1f70 | 228 | break; |
ruschigo | 1:10de89ea1f70 | 229 | default: |
ruschigo | 1:10de89ea1f70 | 230 | break; |
ruschigo | 1:10de89ea1f70 | 231 | } |
ruschigo | 1:10de89ea1f70 | 232 | } |
ruschigo | 1:10de89ea1f70 | 233 | if(pkt.cmd == R_VP){ |
ruschigo | 1:10de89ea1f70 | 234 | switch(pkt.address){ |
ruschigo | 1:10de89ea1f70 | 235 | case OPTION_CMD_VP: |
ruschigo | 1:10de89ea1f70 | 236 | display_ctrl = DISPLAY_CMD_START;//active in next serial loop to do the ctrl |
ruschigo | 1:10de89ea1f70 | 237 | display_option = (char)pkt.buffer[0]; |
ruschigo | 1:10de89ea1f70 | 238 | switch(display_option){//if this CMD needs data claim for it |
ruschigo | 1:10de89ea1f70 | 239 | case 'm': |
ruschigo | 1:10de89ea1f70 | 240 | proculus_get_vp(0x4, MOV_MOTOR_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 241 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 242 | break; |
ruschigo | 1:10de89ea1f70 | 243 | case 'p'://just show value in display |
ruschigo | 1:10de89ea1f70 | 244 | // update_parameter(calc_scaled_value(SCALE_PP_PRESSURE, Pot1.read()), |
ruschigo | 1:10de89ea1f70 | 245 | // DRIVE_PRESSURE_VP, 'p', 1.0, 35, 3 |
ruschigo | 1:10de89ea1f70 | 246 | // ); |
ruschigo | 1:10de89ea1f70 | 247 | break; |
ruschigo | 1:10de89ea1f70 | 248 | case 'e': |
ruschigo | 1:10de89ea1f70 | 249 | proculus_get_vp(0x4, PEEP_TARGET_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 250 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 251 | break; |
ruschigo | 1:10de89ea1f70 | 252 | case 't': |
ruschigo | 1:10de89ea1f70 | 253 | //update_parameter(calc_scaled_value(SCALE_TINSP, Pot3.read()), |
ruschigo | 1:10de89ea1f70 | 254 | // TINS_VP, 't', 0.5, 3.0, 4 |
ruschigo | 1:10de89ea1f70 | 255 | // ); |
ruschigo | 1:10de89ea1f70 | 256 | break; |
ruschigo | 1:10de89ea1f70 | 257 | case 'c': |
ruschigo | 1:10de89ea1f70 | 258 | //update_parameter(calc_scaled_value(SCALE_BPM, Pot2.read()), |
ruschigo | 1:10de89ea1f70 | 259 | // BPM_VP, 'c', 10, 30, 8 |
ruschigo | 1:10de89ea1f70 | 260 | // ); |
ruschigo | 1:10de89ea1f70 | 261 | break; |
ruschigo | 1:10de89ea1f70 | 262 | case 'S': |
ruschigo | 1:10de89ea1f70 | 263 | proculus_get_vp(0x4, BREATH_TURN_ONOFF_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 264 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 265 | break; |
ruschigo | 1:10de89ea1f70 | 266 | case 's': |
ruschigo | 1:10de89ea1f70 | 267 | proculus_get_vp(0x4, ASSISTED_SENSIBILITY_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 268 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 269 | break; |
ruschigo | 1:10de89ea1f70 | 270 | case 'I': |
ruschigo | 1:10de89ea1f70 | 271 | proculus_get_vp(0x4, KI_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 272 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 273 | break; |
ruschigo | 1:10de89ea1f70 | 274 | case 'P': |
ruschigo | 1:10de89ea1f70 | 275 | proculus_get_vp(0x4, KP_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 276 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 277 | break; |
ruschigo | 1:10de89ea1f70 | 278 | case 'D': |
ruschigo | 1:10de89ea1f70 | 279 | proculus_get_vp(0x4, KD_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 280 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 281 | break; |
ruschigo | 1:10de89ea1f70 | 282 | case 'o': |
ruschigo | 1:10de89ea1f70 | 283 | //update_parameter(calc_scaled_value(SCALE_FIO2, Pot4.read()), |
ruschigo | 1:10de89ea1f70 | 284 | // FIO2_VP, 'o', 0.5, 21, 100 |
ruschigo | 1:10de89ea1f70 | 285 | // ); |
ruschigo | 1:10de89ea1f70 | 286 | break; |
ruschigo | 1:10de89ea1f70 | 287 | case 'A': |
ruschigo | 1:10de89ea1f70 | 288 | proculus_get_vp(0x4, ONOFF_ASSISTED_MODE_VP, 0x1); |
ruschigo | 1:10de89ea1f70 | 289 | display_ctrl = DISPLAY_CMD_WAITING_DATA; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 290 | break; |
ruschigo | 1:10de89ea1f70 | 291 | default: |
ruschigo | 1:10de89ea1f70 | 292 | //print warning |
ruschigo | 1:10de89ea1f70 | 293 | break; |
ruschigo | 1:10de89ea1f70 | 294 | }//switch |
ruschigo | 1:10de89ea1f70 | 295 | break; |
ruschigo | 1:10de89ea1f70 | 296 | case BREATH_TURN_ONOFF_VP://TEST OK |
ruschigo | 1:10de89ea1f70 | 297 | display_option = 'S'; |
ruschigo | 1:10de89ea1f70 | 298 | display_data = pkt.buffer[0];//for while let it as single uint16 |
ruschigo | 1:10de89ea1f70 | 299 | display_ctrl = DISPLAY_CMD_DATA_ARRIVE; //wait for data from display |
ruschigo | 1:10de89ea1f70 | 300 | break; |
ruschigo | 1:10de89ea1f70 | 301 | case PEEP_TARGET_VP: |
ruschigo | 1:10de89ea1f70 | 302 | display_option = 'e'; |
ruschigo | 1:10de89ea1f70 | 303 | display_data = pkt.buffer[0];//ISSUE is this data in fix point? |
ruschigo | 1:10de89ea1f70 | 304 | display_ctrl = DISPLAY_CMD_DATA_ARRIVE; |
ruschigo | 1:10de89ea1f70 | 305 | break; |
ruschigo | 1:10de89ea1f70 | 306 | case ASSISTED_SENSIBILITY_VP: |
ruschigo | 1:10de89ea1f70 | 307 | //sprintf(debug_msg,"Assi_sens = %x \n", pkt.buffer[0]); |
ruschigo | 1:10de89ea1f70 | 308 | //pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 309 | display_option = 's'; |
ruschigo | 1:10de89ea1f70 | 310 | display_data = pkt.buffer[0];//ISSUE is this data in fix point? |
ruschigo | 1:10de89ea1f70 | 311 | display_ctrl = DISPLAY_CMD_DATA_ARRIVE; |
ruschigo | 1:10de89ea1f70 | 312 | break; |
ruschigo | 1:10de89ea1f70 | 313 | default: |
ruschigo | 1:10de89ea1f70 | 314 | break; |
ruschigo | 1:10de89ea1f70 | 315 | }//switch |
ruschigo | 1:10de89ea1f70 | 316 | }//if |
ruschigo | 1:10de89ea1f70 | 317 | if(pkt.cmd == R_CTRL_REG){//from a read control register comand |
ruschigo | 1:10de89ea1f70 | 318 | //pc.puts("control reg \n"); |
ruschigo | 1:10de89ea1f70 | 319 | if(pkt.address == PIC_ID_H){//read screen cmd |
ruschigo | 1:10de89ea1f70 | 320 | screen_id = (pkt.buffer[0] << 8 ); |
ruschigo | 1:10de89ea1f70 | 321 | screen_id |= pkt.buffer[1]; |
ruschigo | 1:10de89ea1f70 | 322 | //sprintf(debug_msg,"screen_id = %x \n", screen_id); |
ruschigo | 1:10de89ea1f70 | 323 | //pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 324 | //if(PISTON_HOM_PIN == HIGH){ |
ruschigo | 1:10de89ea1f70 | 325 | switch(screen_id){ |
ruschigo | 1:10de89ea1f70 | 326 | case SCREEN_CALIBRATING: |
ruschigo | 1:10de89ea1f70 | 327 | jump_to_screen(SCREEN_MAIN_MENU); |
ruschigo | 1:10de89ea1f70 | 328 | break; |
ruschigo | 1:10de89ea1f70 | 329 | case SCREEN_INIT: |
ruschigo | 1:10de89ea1f70 | 330 | jump_to_screen(SCREEN_CALIBRATING); |
ruschigo | 1:10de89ea1f70 | 331 | break; |
ruschigo | 1:10de89ea1f70 | 332 | case SCREEN_OFF: |
ruschigo | 1:10de89ea1f70 | 333 | jump_to_screen(SCREEN_STARTUP); |
ruschigo | 1:10de89ea1f70 | 334 | break; |
ruschigo | 1:10de89ea1f70 | 335 | case SCREEN_STARTUP: |
ruschigo | 1:10de89ea1f70 | 336 | jump_to_screen(SCREEN_INIT); |
ruschigo | 1:10de89ea1f70 | 337 | break; |
ruschigo | 1:10de89ea1f70 | 338 | default: |
ruschigo | 1:10de89ea1f70 | 339 | //print warning |
ruschigo | 1:10de89ea1f70 | 340 | break; |
ruschigo | 1:10de89ea1f70 | 341 | } |
ruschigo | 1:10de89ea1f70 | 342 | //}else{ |
ruschigo | 1:10de89ea1f70 | 343 | // jump_to_screen(SCREEN_MAIN_MENU); |
ruschigo | 1:10de89ea1f70 | 344 | //} |
ruschigo | 1:10de89ea1f70 | 345 | } |
ruschigo | 1:10de89ea1f70 | 346 | } |
ruschigo | 1:10de89ea1f70 | 347 | i = 0; |
ruschigo | 1:10de89ea1f70 | 348 | while(i<100){ |
ruschigo | 1:10de89ea1f70 | 349 | serial_rx_buffer[i] = 0x0; |
ruschigo | 1:10de89ea1f70 | 350 | i++; |
ruschigo | 1:10de89ea1f70 | 351 | } |
ruschigo | 1:10de89ea1f70 | 352 | i_rx = 0; |
ruschigo | 1:10de89ea1f70 | 353 | } |
ruschigo | 1:10de89ea1f70 | 354 | } |
ruschigo | 1:10de89ea1f70 | 355 | |
ruschigo | 1:10de89ea1f70 | 356 | struct pulga_pkt { |
ruschigo | 1:10de89ea1f70 | 357 | uint8_t header_h; |
ruschigo | 1:10de89ea1f70 | 358 | uint8_t header_l; |
ruschigo | 1:10de89ea1f70 | 359 | uint8_t count; |
ruschigo | 1:10de89ea1f70 | 360 | uint8_t cmd; |
ruschigo | 1:10de89ea1f70 | 361 | uint16_t address; |
ruschigo | 1:10de89ea1f70 | 362 | uint16_t *buffer; |
ruschigo | 1:10de89ea1f70 | 363 | }; |
ruschigo | 1:10de89ea1f70 | 364 | |
ruschigo | 1:10de89ea1f70 | 365 | |
ruschigo | 1:10de89ea1f70 | 366 | //PULGA TO PULGA SERIAL PROTOCOL P2PS |
ruschigo | 1:10de89ea1f70 | 367 | /*9A A9 BC CMD DATA |
ruschigo | 1:10de89ea1f70 | 368 | HH HL Byte to come Command datas |
ruschigo | 1:10de89ea1f70 | 369 | */ |
ruschigo | 1:10de89ea1f70 | 370 | |
ruschigo | 1:10de89ea1f70 | 371 | #define PULGA_CMD_SEND_POT_DATA 0x40 |
ruschigo | 1:10de89ea1f70 | 372 | /* |
ruschigo | 1:10de89ea1f70 | 373 | *serial_to_proculus_pkt: get the data received in serial rx and translate |
ruschigo | 1:10de89ea1f70 | 374 | *to proculus_pkt |
ruschigo | 1:10de89ea1f70 | 375 | *@pkt is pointer to the struct to store datas |
ruschigo | 1:10de89ea1f70 | 376 | */ |
ruschigo | 1:10de89ea1f70 | 377 | int serial_to_pulga_pkt(char *serial_data, struct pulga_pkt *pkt){ |
ruschigo | 1:10de89ea1f70 | 378 | pkt->header_h = serial_data[0]; |
ruschigo | 1:10de89ea1f70 | 379 | pkt->header_l = serial_data[1]; |
ruschigo | 1:10de89ea1f70 | 380 | pkt->count = serial_data[2]; |
ruschigo | 1:10de89ea1f70 | 381 | pkt->cmd = serial_data[3]; |
ruschigo | 1:10de89ea1f70 | 382 | if(pkt->cmd == PULGA_CMD_SEND_POT_DATA){ |
ruschigo | 1:10de89ea1f70 | 383 | pkt->address = serial_data[4]; |
ruschigo | 1:10de89ea1f70 | 384 | pkt->buffer[0] = (serial_data[5] << 8); |
ruschigo | 1:10de89ea1f70 | 385 | pkt->buffer[0] |= serial_data[6]; |
ruschigo | 1:10de89ea1f70 | 386 | } |
ruschigo | 1:10de89ea1f70 | 387 | return 0; |
ruschigo | 1:10de89ea1f70 | 388 | } |
ruschigo | 1:10de89ea1f70 | 389 | char rx_pulga_buffer[100]; |
ruschigo | 1:10de89ea1f70 | 390 | void clear_pulga_buffer(){ |
ruschigo | 1:10de89ea1f70 | 391 | int i = 0; |
ruschigo | 1:10de89ea1f70 | 392 | char msg[30] = "PKT:"; |
ruschigo | 1:10de89ea1f70 | 393 | char t[3]; |
ruschigo | 1:10de89ea1f70 | 394 | while(i<10){ |
ruschigo | 1:10de89ea1f70 | 395 | sprintf(t,"%x",rx_pulga_buffer[i]); |
ruschigo | 1:10de89ea1f70 | 396 | strcat(msg, t); |
ruschigo | 1:10de89ea1f70 | 397 | rx_pulga_buffer[i] = 0x0; |
ruschigo | 1:10de89ea1f70 | 398 | i++; |
ruschigo | 1:10de89ea1f70 | 399 | } |
ruschigo | 1:10de89ea1f70 | 400 | pc.puts(msg); |
ruschigo | 1:10de89ea1f70 | 401 | pc.puts("\n"); |
ruschigo | 1:10de89ea1f70 | 402 | } |
ruschigo | 1:10de89ea1f70 | 403 | |
ruschigo | 1:10de89ea1f70 | 404 | //*********************************************************************************************** |
ruschigo | 1:10de89ea1f70 | 405 | #define DELAY_P2PS 10000 //us |
ruschigo | 1:10de89ea1f70 | 406 | |
ruschigo | 1:10de89ea1f70 | 407 | int rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 408 | int pulga_bc = 0; |
ruschigo | 1:10de89ea1f70 | 409 | Timer pulga_rx_timer; |
ruschigo | 1:10de89ea1f70 | 410 | void serial_pulga_rx(){ |
ruschigo | 1:10de89ea1f70 | 411 | int i=0, unknow = 1; |
ruschigo | 1:10de89ea1f70 | 412 | struct pulga_pkt pulga_pkt; |
ruschigo | 1:10de89ea1f70 | 413 | uint16_t data[2]; |
ruschigo | 1:10de89ea1f70 | 414 | int time_us; |
ruschigo | 1:10de89ea1f70 | 415 | char debug_msg[100]; |
ruschigo | 1:10de89ea1f70 | 416 | pulga_pkt.buffer = data; |
ruschigo | 1:10de89ea1f70 | 417 | pulga_rx_timer.reset();//restart timer |
ruschigo | 1:10de89ea1f70 | 418 | pulga_rx_timer.start(); |
ruschigo | 1:10de89ea1f70 | 419 | //time_us = pulga_rx_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 420 | //while(time_us<DELAY_P2PS){ |
ruschigo | 1:10de89ea1f70 | 421 | // time_us = pulga_rx_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 422 | //} |
ruschigo | 1:10de89ea1f70 | 423 | /*if(rx_pulga_buffer[0] != 0x9a){ |
ruschigo | 1:10de89ea1f70 | 424 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 425 | } |
ruschigo | 1:10de89ea1f70 | 426 | if(rx_i >1 && rx_pulga_buffer[1] != 0xa9){ |
ruschigo | 1:10de89ea1f70 | 427 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 428 | }*/ |
ruschigo | 1:10de89ea1f70 | 429 | |
ruschigo | 1:10de89ea1f70 | 430 | while(serial_to_pulga.readable()){//get only one byte per interrupt |
ruschigo | 1:10de89ea1f70 | 431 | if(rx_pulga_buffer[0] != 0x9a){//avoid noise |
ruschigo | 1:10de89ea1f70 | 432 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 433 | pulga_bc = 0; |
ruschigo | 1:10de89ea1f70 | 434 | clear_pulga_buffer(); |
ruschigo | 1:10de89ea1f70 | 435 | } |
ruschigo | 1:10de89ea1f70 | 436 | if(rx_i >1 && rx_pulga_buffer[1] != 0xa9){//avoid noise |
ruschigo | 1:10de89ea1f70 | 437 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 438 | pulga_bc = 0; |
ruschigo | 1:10de89ea1f70 | 439 | clear_pulga_buffer(); |
ruschigo | 1:10de89ea1f70 | 440 | } |
ruschigo | 1:10de89ea1f70 | 441 | if( i>3 && rx_pulga_buffer[3] < 0x40 || rx_pulga_buffer[3] > 0x49){//avoid noise |
ruschigo | 1:10de89ea1f70 | 442 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 443 | pulga_bc = 0; |
ruschigo | 1:10de89ea1f70 | 444 | clear_pulga_buffer(); |
ruschigo | 1:10de89ea1f70 | 445 | } |
ruschigo | 1:10de89ea1f70 | 446 | |
ruschigo | 1:10de89ea1f70 | 447 | /*pulga_rx_timer.reset();//restart timer |
ruschigo | 1:10de89ea1f70 | 448 | pulga_rx_timer.start(); |
ruschigo | 1:10de89ea1f70 | 449 | time_us = pulga_rx_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 450 | while(time_us<DELAY_P2PS){ |
ruschigo | 1:10de89ea1f70 | 451 | time_us = pulga_rx_timer.read_us(); |
ruschigo | 1:10de89ea1f70 | 452 | }*/ |
ruschigo | 1:10de89ea1f70 | 453 | rx_pulga_buffer[rx_i] = serial_to_pulga.getc(); |
ruschigo | 1:10de89ea1f70 | 454 | |
ruschigo | 1:10de89ea1f70 | 455 | if(rx_i == 2)//get bc(how many byts will come |
ruschigo | 1:10de89ea1f70 | 456 | pulga_bc = rx_pulga_buffer[2]; |
ruschigo | 1:10de89ea1f70 | 457 | |
ruschigo | 1:10de89ea1f70 | 458 | if(pulga_bc > 0 && rx_i > 2)//avoid decrement it when it was got |
ruschigo | 1:10de89ea1f70 | 459 | pulga_bc--; |
ruschigo | 1:10de89ea1f70 | 460 | /* |
ruschigo | 1:10de89ea1f70 | 461 | sprintf(debug_msg,"rx_pulga_buffer[%d] = %x\n",rx_i ,rx_pulga_buffer[rx_i]); |
ruschigo | 1:10de89ea1f70 | 462 | pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 463 | sprintf(debug_msg,"pulga_bc = %d\n",pulga_bc); |
ruschigo | 1:10de89ea1f70 | 464 | pc.puts(debug_msg); |
ruschigo | 1:10de89ea1f70 | 465 | */ |
ruschigo | 1:10de89ea1f70 | 466 | |
ruschigo | 1:10de89ea1f70 | 467 | rx_i++; |
ruschigo | 1:10de89ea1f70 | 468 | if(pulga_bc == 0 && rx_i > 2) |
ruschigo | 1:10de89ea1f70 | 469 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 470 | } |
ruschigo | 1:10de89ea1f70 | 471 | |
ruschigo | 1:10de89ea1f70 | 472 | /*if(rx_i == 2)//get bc(how many byts will come |
ruschigo | 1:10de89ea1f70 | 473 | pulga_bc = rx_pulga_buffer[2];*/ |
ruschigo | 1:10de89ea1f70 | 474 | |
ruschigo | 1:10de89ea1f70 | 475 | if(pulga_bc == 0 && rx_i >0){ |
ruschigo | 1:10de89ea1f70 | 476 | // |
ruschigo | 1:10de89ea1f70 | 477 | if(rx_pulga_buffer[3] >= 0x40 && rx_pulga_buffer[3] <= 0x49) |
ruschigo | 1:10de89ea1f70 | 478 | { |
ruschigo | 1:10de89ea1f70 | 479 | serial_to_pulga_pkt(rx_pulga_buffer, &pulga_pkt); |
ruschigo | 1:10de89ea1f70 | 480 | unknow=0; |
ruschigo | 1:10de89ea1f70 | 481 | } |
ruschigo | 1:10de89ea1f70 | 482 | else |
ruschigo | 1:10de89ea1f70 | 483 | unknow = 1;//received something unknow |
ruschigo | 1:10de89ea1f70 | 484 | } |
ruschigo | 1:10de89ea1f70 | 485 | if(unknow == 0){ |
ruschigo | 1:10de89ea1f70 | 486 | //Do logic Here |
ruschigo | 1:10de89ea1f70 | 487 | if(pulga_pkt.cmd == PULGA_CMD_SEND_POT_DATA){ |
ruschigo | 1:10de89ea1f70 | 488 | rx_pot[pulga_pkt.address - 1] = (pulga_pkt.buffer[0] / 1000); |
ruschigo | 1:10de89ea1f70 | 489 | } |
ruschigo | 1:10de89ea1f70 | 490 | clear_pulga_buffer(); |
ruschigo | 1:10de89ea1f70 | 491 | rx_i = 0; |
ruschigo | 1:10de89ea1f70 | 492 | pulga_bc = 0; |
ruschigo | 1:10de89ea1f70 | 493 | } |
ruschigo | 1:10de89ea1f70 | 494 | |
ruschigo | 1:10de89ea1f70 | 495 | } |
ruschigo | 1:10de89ea1f70 | 496 | |
ruschigo | 1:10de89ea1f70 | 497 | void Setup() |
ruschigo | 1:10de89ea1f70 | 498 | //Description: Main setup function, called after power on or reset |
ruschigo | 1:10de89ea1f70 | 499 | //Inputs: void |
ruschigo | 1:10de89ea1f70 | 500 | //Outputs: void |
ruschigo | 1:10de89ea1f70 | 501 | { |
ruschigo | 1:10de89ea1f70 | 502 | |
ruschigo | 1:10de89ea1f70 | 503 | //setup the device rx irq handler |
ruschigo | 1:10de89ea1f70 | 504 | serial1.attach(&serial_rx_irq, RawSerial::RxIrq); |
ruschigo | 1:10de89ea1f70 | 505 | serial_to_pulga.attach(&serial_pulga_rx, RawSerial::RxIrq); |
ruschigo | 1:10de89ea1f70 | 506 | //setup the baud rate to match with display |
ruschigo | 1:10de89ea1f70 | 507 | serial1.baud(115200); |
ruschigo | 1:10de89ea1f70 | 508 | serial_to_pulga.baud(9600); |
ruschigo | 1:10de89ea1f70 | 509 | |
ruschigo | 1:10de89ea1f70 | 510 | //display_timeout.attach(&get_screen_at_irq, 0.5); |
ruschigo | 1:10de89ea1f70 | 511 | display_ticker.attach(&get_screen_at_irq, 0.4); |
ruschigo | 1:10de89ea1f70 | 512 | //display_ticker.attach(&update_screen, 0.3); |
ruschigo | 1:10de89ea1f70 | 513 | |
ruschigo | 1:10de89ea1f70 | 514 | } |
ruschigo | 1:10de89ea1f70 | 515 | |
ruschigo | 1:10de89ea1f70 | 516 | void Send_to_pulga(){ |
ruschigo | 1:10de89ea1f70 | 517 | char temp[20]; |
ruschigo | 1:10de89ea1f70 | 518 | if(display_option != '\0') |
ruschigo | 1:10de89ea1f70 | 519 | { |
ruschigo | 1:10de89ea1f70 | 520 | serial_to_pulga.putc(display_option); |
ruschigo | 1:10de89ea1f70 | 521 | display_option = '\0'; |
ruschigo | 1:10de89ea1f70 | 522 | } |
ruschigo | 1:10de89ea1f70 | 523 | |
ruschigo | 1:10de89ea1f70 | 524 | if(display_ctrl == DISPLAY_CMD_DATA_ARRIVE) |
ruschigo | 1:10de89ea1f70 | 525 | { |
ruschigo | 1:10de89ea1f70 | 526 | sprintf(temp, "%f", display_data); |
ruschigo | 1:10de89ea1f70 | 527 | serial_to_pulga.puts(temp); |
ruschigo | 1:10de89ea1f70 | 528 | display_ctrl = DISPLAY_CMD_DONE; |
ruschigo | 1:10de89ea1f70 | 529 | } |
ruschigo | 1:10de89ea1f70 | 530 | } |
ruschigo | 1:10de89ea1f70 | 531 | |
ruschigo | 1:10de89ea1f70 | 532 | //*********************************************************************************************** |
ruschigo | 1:10de89ea1f70 | 533 | int main() |
ruschigo | 1:10de89ea1f70 | 534 | { |
ruschigo | 1:10de89ea1f70 | 535 | //wait(3);//time to display setup. not sure about this value |
ruschigo | 1:10de89ea1f70 | 536 | Setup(); |
ruschigo | 1:10de89ea1f70 | 537 | jump_to_screen(SCREEN_STARTUP); |
ruschigo | 1:10de89ea1f70 | 538 | while (true) { |
ruschigo | 1:10de89ea1f70 | 539 | //update_screen(); |
ruschigo | 1:10de89ea1f70 | 540 | //Send_to_pulga(); |
ruschigo | 1:10de89ea1f70 | 541 | //pc.puts("teste \n"); |
ruschigo | 1:10de89ea1f70 | 542 | serial_to_pulga.puts("test output\n"); |
ruschigo | 1:10de89ea1f70 | 543 | //serial_to_pulga.puts("puts \n"); |
ruschigo | 1:10de89ea1f70 | 544 | wait(0.3); |
ruschigo | 1:10de89ea1f70 | 545 | } |
ruschigo | 1:10de89ea1f70 | 546 | } |