test

Dependencies:   MINI8I8O5A000 mbed EEPROM_P4 IICLCD_LOWCOST

Committer:
tsuparit
Date:
Tue Oct 11 02:46:12 2016 +0000
Revision:
8:055a85e600dd
Parent:
7:3cb877cb7393
Child:
9:dfb7951e8532
First_working function release.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tsuparit 6:96d89c2f4bf9 1 float firmware_version = 1.20;
tsuparit 0:5e60f85d6c26 2
tsuparit 0:5e60f85d6c26 3 #include "mbed.h"
tsuparit 2:82dbbbff7518 4
tsuparit 6:96d89c2f4bf9 5 #define BUZZVSP7 // Enable P7 for Buzzer..
tsuparit 2:82dbbbff7518 6 //#include "USBSerial.h"
tsuparit 2:82dbbbff7518 7 //SBSerial pc;
tsuparit 2:82dbbbff7518 8
tsuparit 2:82dbbbff7518 9
tsuparit 2:82dbbbff7518 10
tsuparit 2:82dbbbff7518 11 //#define USBSerialOption
tsuparit 2:82dbbbff7518 12
tsuparit 2:82dbbbff7518 13 #ifdef USBSerialOption
tsuparit 2:82dbbbff7518 14 #include "USBSerial.h"
tsuparit 2:82dbbbff7518 15 USBSerial pc;
tsuparit 7:3cb877cb7393 16
tsuparit 2:82dbbbff7518 17 #else
tsuparit 2:82dbbbff7518 18
tsuparit 4:c08d713f8cfc 19 //Serial pc(USBTX, USBRX); // SDA serail port
tsuparit 4:c08d713f8cfc 20 Serial pc(PTE0, PTE1); // tx, rx
tsuparit 2:82dbbbff7518 21 #endif
tsuparit 2:82dbbbff7518 22
tsuparit 2:82dbbbff7518 23
tsuparit 2:82dbbbff7518 24
tsuparit 0:5e60f85d6c26 25 #include "LiquidCrystal_I2C.h"
tsuparit 0:5e60f85d6c26 26 #include "mini8i8o5a.h"
tsuparit 0:5e60f85d6c26 27 #define EEPROMBUFFERSIZE 16
tsuparit 0:5e60f85d6c26 28 #include "eepromlib.h"
tsuparit 0:5e60f85d6c26 29
tsuparit 0:5e60f85d6c26 30
tsuparit 0:5e60f85d6c26 31 DigitalOut myled(LED1);
tsuparit 0:5e60f85d6c26 32
tsuparit 5:a693866be4b3 33 int loopinilcd=0;
tsuparit 0:5e60f85d6c26 34
tsuparit 0:5e60f85d6c26 35 char str[50];
tsuparit 0:5e60f85d6c26 36 char strbuf[50];
tsuparit 0:5e60f85d6c26 37
tsuparit 0:5e60f85d6c26 38
tsuparit 0:5e60f85d6c26 39 int rxchar_count=0;
tsuparit 0:5e60f85d6c26 40 #define RXBUFFERSIZE 100
tsuparit 0:5e60f85d6c26 41 char rx_buffer[RXBUFFERSIZE];
tsuparit 0:5e60f85d6c26 42 char rx_buffer_CMD[RXBUFFERSIZE];
tsuparit 0:5e60f85d6c26 43 char rx_buffer_ARG[RXBUFFERSIZE];
tsuparit 0:5e60f85d6c26 44 char rx_pointer=0;
tsuparit 0:5e60f85d6c26 45 char inchar=0;
tsuparit 0:5e60f85d6c26 46
tsuparit 0:5e60f85d6c26 47 char remote_control=0;
tsuparit 0:5e60f85d6c26 48
tsuparit 0:5e60f85d6c26 49 float ser_para_reset=0;
tsuparit 0:5e60f85d6c26 50 //float ser_para_stab=3.25;
tsuparit 0:5e60f85d6c26 51 float ser_para_time=1.19;
tsuparit 0:5e60f85d6c26 52 float ser_para_result=0.0;
tsuparit 0:5e60f85d6c26 53
tsuparit 0:5e60f85d6c26 54 char ser_para_state=0;
tsuparit 0:5e60f85d6c26 55 char ser_para_err=0;
tsuparit 0:5e60f85d6c26 56 char ser_para_range=0;
tsuparit 0:5e60f85d6c26 57
tsuparit 0:5e60f85d6c26 58 char ser_trigger=0;
tsuparit 0:5e60f85d6c26 59 char ser_para_cont_mode=1; //serial continue print out
tsuparit 0:5e60f85d6c26 60
tsuparit 0:5e60f85d6c26 61 Timer com_timer;
tsuparit 0:5e60f85d6c26 62
tsuparit 0:5e60f85d6c26 63
tsuparit 0:5e60f85d6c26 64 char boardaddress =1;
tsuparit 0:5e60f85d6c26 65
tsuparit 7:3cb877cb7393 66
tsuparit 7:3cb877cb7393 67
tsuparit 7:3cb877cb7393 68
tsuparit 7:3cb877cb7393 69 int CAMERROR =0;
tsuparit 7:3cb877cb7393 70 int CAMTOTAL =0;
tsuparit 7:3cb877cb7393 71 #define CAMTRIGGER OUT0
tsuparit 7:3cb877cb7393 72 #define CAMBUSY IN1
tsuparit 7:3cb877cb7393 73
tsuparit 7:3cb877cb7393 74
tsuparit 0:5e60f85d6c26 75 void serial_pc_rx_services()
tsuparit 0:5e60f85d6c26 76 {
tsuparit 7:3cb877cb7393 77 int i,j;
tsuparit 2:82dbbbff7518 78 #ifdef USBSerialOption
tsuparit 2:82dbbbff7518 79 while (pc.available())
tsuparit 2:82dbbbff7518 80 #else
tsuparit 2:82dbbbff7518 81 while(pc.readable())
tsuparit 2:82dbbbff7518 82 #endif
tsuparit 3:e658376f6e27 83 {
tsuparit 3:e658376f6e27 84 inchar =pc.getc();
tsuparit 2:82dbbbff7518 85 if ( rx_pointer==0) //first incoming character clear old buffer
tsuparit 0:5e60f85d6c26 86 {
tsuparit 0:5e60f85d6c26 87 for (i=0;i<RXBUFFERSIZE;i++) rx_buffer[i]=0; //clear old buffer
tsuparit 3:e658376f6e27 88 com_timer.reset();
tsuparit 3:e658376f6e27 89 com_timer.start();
tsuparit 0:5e60f85d6c26 90 }
tsuparit 0:5e60f85d6c26 91
tsuparit 5:a693866be4b3 92 loopinilcd=0;
tsuparit 2:82dbbbff7518 93
tsuparit 3:e658376f6e27 94 rx_buffer[rx_pointer]=inchar; //keep char in buffer...
tsuparit 0:5e60f85d6c26 95 rx_pointer++;
tsuparit 7:3cb877cb7393 96
tsuparit 0:5e60f85d6c26 97 if (rx_pointer>=(RXBUFFERSIZE-10))
tsuparit 0:5e60f85d6c26 98 {
tsuparit 0:5e60f85d6c26 99 rx_pointer=0;//Error buffer overflow
tsuparit 2:82dbbbff7518 100 pc.printf("ERR:buffer overflow\n");
tsuparit 0:5e60f85d6c26 101 }
tsuparit 7:3cb877cb7393 102
tsuparit 0:5e60f85d6c26 103 if ((inchar=='\r')|(inchar=='\n'))
tsuparit 0:5e60f85d6c26 104 {
tsuparit 2:82dbbbff7518 105
tsuparit 0:5e60f85d6c26 106 rx_buffer[rx_pointer-1]=0;//mark end of string, remove terminate char
tsuparit 0:5e60f85d6c26 107
tsuparit 0:5e60f85d6c26 108 i=0;
tsuparit 0:5e60f85d6c26 109 j=0;
tsuparit 0:5e60f85d6c26 110 char cmd_done=0;
tsuparit 0:5e60f85d6c26 111 while (rx_buffer[i]!=0)
tsuparit 0:5e60f85d6c26 112 {
tsuparit 0:5e60f85d6c26 113 if (cmd_done==0)
tsuparit 0:5e60f85d6c26 114 {
tsuparit 0:5e60f85d6c26 115 rx_buffer_CMD[i]=rx_buffer[i];//copy cmd part
tsuparit 0:5e60f85d6c26 116 if (rx_buffer_CMD[i]==' ')
tsuparit 0:5e60f85d6c26 117 {
tsuparit 0:5e60f85d6c26 118 cmd_done=1;
tsuparit 0:5e60f85d6c26 119 rx_buffer_CMD[i+1]=0;
tsuparit 0:5e60f85d6c26 120 }
tsuparit 0:5e60f85d6c26 121 }
tsuparit 0:5e60f85d6c26 122 else
tsuparit 0:5e60f85d6c26 123 {
tsuparit 0:5e60f85d6c26 124 rx_buffer_ARG[j]=rx_buffer[i];//copy cmd part
tsuparit 0:5e60f85d6c26 125 j++;
tsuparit 0:5e60f85d6c26 126 }
tsuparit 0:5e60f85d6c26 127 i++;
tsuparit 0:5e60f85d6c26 128
tsuparit 0:5e60f85d6c26 129 }
tsuparit 7:3cb877cb7393 130
tsuparit 1:d9ab13cdf377 131 rx_buffer_ARG[j]=0; //end of string ++++
tsuparit 0:5e60f85d6c26 132
tsuparit 7:3cb877cb7393 133
tsuparit 7:3cb877cb7393 134
tsuparit 7:3cb877cb7393 135 #define IDELBUSYLOOP 10000
tsuparit 7:3cb877cb7393 136 BUZZER=1;
tsuparit 7:3cb877cb7393 137
tsuparit 7:3cb877cb7393 138
tsuparit 7:3cb877cb7393 139 if (rx_buffer[0]=='t')
tsuparit 7:3cb877cb7393 140 {
tsuparit 7:3cb877cb7393 141 //pulse trigger
tsuparit 7:3cb877cb7393 142 CAMTRIGGER=0; //edge trigger
tsuparit 7:3cb877cb7393 143 i=0;
tsuparit 7:3cb877cb7393 144 while(1) //wait camera run busy
tsuparit 7:3cb877cb7393 145 {
tsuparit 7:3cb877cb7393 146 Input_sampling(8);
tsuparit 7:3cb877cb7393 147 if(CAMBUSY!=0) break;
tsuparit 7:3cb877cb7393 148 if (i++>IDELBUSYLOOP)
tsuparit 7:3cb877cb7393 149 {
tsuparit 7:3cb877cb7393 150 CAMERROR=1;
tsuparit 7:3cb877cb7393 151 break;
tsuparit 7:3cb877cb7393 152 }
tsuparit 7:3cb877cb7393 153 }
tsuparit 7:3cb877cb7393 154 //cmaera process run
tsuparit 7:3cb877cb7393 155 CAMTRIGGER=1; //edge trigger
tsuparit 7:3cb877cb7393 156 i=0;
tsuparit 7:3cb877cb7393 157 while(1) //wait camera complete run
tsuparit 7:3cb877cb7393 158 {
tsuparit 7:3cb877cb7393 159 Input_sampling(8);
tsuparit 7:3cb877cb7393 160 if(CAMBUSY==0) break;
tsuparit 7:3cb877cb7393 161 if (i++>IDELBUSYLOOP)
tsuparit 7:3cb877cb7393 162 {
tsuparit 8:055a85e600dd 163 CAMERROR=1;
tsuparit 8:055a85e600dd 164 break;
tsuparit 7:3cb877cb7393 165 }
tsuparit 7:3cb877cb7393 166 }
tsuparit 7:3cb877cb7393 167
tsuparit 7:3cb877cb7393 168 }
tsuparit 7:3cb877cb7393 169 else if (rx_buffer[0]=='j')
tsuparit 7:3cb877cb7393 170 {
tsuparit 8:055a85e600dd 171 // wait(0.1);
tsuparit 7:3cb877cb7393 172 }
tsuparit 7:3cb877cb7393 173 else if (rx_buffer[0]=='r')
tsuparit 7:3cb877cb7393 174 {
tsuparit 8:055a85e600dd 175 //wait(0.1);
tsuparit 7:3cb877cb7393 176 }
tsuparit 7:3cb877cb7393 177 else if (rx_buffer[0]=='p')
tsuparit 7:3cb877cb7393 178 {
tsuparit 8:055a85e600dd 179 //wait(0.1);
tsuparit 8:055a85e600dd 180 #define PRGLINE0 OUT4
tsuparit 8:055a85e600dd 181 #define PRGLINE1 OUT5
tsuparit 8:055a85e600dd 182 #define PRGLINE2 OUT6
tsuparit 8:055a85e600dd 183 #define PRGLINE3 OUT7
tsuparit 8:055a85e600dd 184 #define PRG_ON 0
tsuparit 8:055a85e600dd 185 #define PRG_OFF 1
tsuparit 8:055a85e600dd 186
tsuparit 8:055a85e600dd 187 switch( rx_buffer[1])
tsuparit 8:055a85e600dd 188 {
tsuparit 8:055a85e600dd 189 case '0': PRGLINE3=PRG_OFF;PRGLINE2=PRG_OFF; PRGLINE1=PRG_OFF; PRGLINE0=PRG_OFF; break;
tsuparit 8:055a85e600dd 190 case '1': PRGLINE3=PRG_OFF;PRGLINE2=PRG_OFF; PRGLINE1=PRG_OFF; PRGLINE0=PRG_ON ; break;
tsuparit 8:055a85e600dd 191 case '2': PRGLINE3=PRG_OFF;PRGLINE2=PRG_OFF; PRGLINE1=PRG_ON ; PRGLINE0=PRG_OFF; break;
tsuparit 8:055a85e600dd 192 case '3': PRGLINE3=PRG_OFF;PRGLINE2=PRG_OFF; PRGLINE1=PRG_ON ; PRGLINE0=PRG_ON ; break;
tsuparit 8:055a85e600dd 193 case '4': PRGLINE3=PRG_OFF;PRGLINE2=PRG_ON ; PRGLINE1=PRG_OFF; PRGLINE0=PRG_OFF; break;
tsuparit 8:055a85e600dd 194 case '5': PRGLINE3=PRG_OFF;PRGLINE2=PRG_ON ; PRGLINE1=PRG_OFF; PRGLINE0=PRG_ON; break;
tsuparit 8:055a85e600dd 195 case '6': PRGLINE3=PRG_OFF;PRGLINE2=PRG_ON ; PRGLINE1=PRG_OFF; PRGLINE0=PRG_ON ; break;
tsuparit 8:055a85e600dd 196 case '7': PRGLINE3=PRG_OFF;PRGLINE2=PRG_ON ; PRGLINE1=PRG_ON ; PRGLINE0=PRG_ON ; break;
tsuparit 8:055a85e600dd 197 case '8': PRGLINE3=PRG_ON ;PRGLINE2=PRG_OFF; PRGLINE1=PRG_OFF; PRGLINE0=PRG_OFF; break;
tsuparit 8:055a85e600dd 198 case '9': PRGLINE3=PRG_ON ;PRGLINE2=PRG_OFF; PRGLINE1=PRG_OFF; PRGLINE0=PRG_ON ; break;
tsuparit 7:3cb877cb7393 199
tsuparit 8:055a85e600dd 200 default: PRGLINE3=PRG_OFF;PRGLINE2=PRG_OFF; PRGLINE1=PRG_OFF; PRGLINE0=PRG_OFF; break;
tsuparit 8:055a85e600dd 201 }
tsuparit 7:3cb877cb7393 202 }
tsuparit 7:3cb877cb7393 203
tsuparit 7:3cb877cb7393 204 BUZZER=0;
tsuparit 7:3cb877cb7393 205 Input_sampling(8);
tsuparit 7:3cb877cb7393 206 if (IN0) // Total result
tsuparit 7:3cb877cb7393 207 {
tsuparit 7:3cb877cb7393 208 CAMTOTAL=1;
tsuparit 7:3cb877cb7393 209 OUT1=0;
tsuparit 7:3cb877cb7393 210 }
tsuparit 7:3cb877cb7393 211 else
tsuparit 7:3cb877cb7393 212 {
tsuparit 7:3cb877cb7393 213 CAMTOTAL=0;
tsuparit 7:3cb877cb7393 214 OUT1=1;
tsuparit 7:3cb877cb7393 215 }
tsuparit 7:3cb877cb7393 216
tsuparit 7:3cb877cb7393 217
tsuparit 7:3cb877cb7393 218
tsuparit 7:3cb877cb7393 219
tsuparit 7:3cb877cb7393 220 //+++++
tsuparit 7:3cb877cb7393 221 pc.printf("%dOK\n",CAMTOTAL+4*CAMERROR);
tsuparit 7:3cb877cb7393 222 //pc.printf("123OK");
tsuparit 7:3cb877cb7393 223 //pc.printf("rxbuffer: %s",rx_buffer); //test direct echo
tsuparit 7:3cb877cb7393 224 //++++
tsuparit 7:3cb877cb7393 225
tsuparit 2:82dbbbff7518 226 //pc.printf("rxbuffer: %s",rx_buffer); //test direct echo
tsuparit 7:3cb877cb7393 227 /*
tsuparit 0:5e60f85d6c26 228 if (strcmp(rx_buffer,"*IDN?")==0)
tsuparit 0:5e60f85d6c26 229 {
tsuparit 0:5e60f85d6c26 230 pc.printf("Schaffner SerIO, ver %.1f\n",firmware_version);
tsuparit 0:5e60f85d6c26 231 }
tsuparit 0:5e60f85d6c26 232 else if (strcmp(rx_buffer,"*RST")==0)
tsuparit 0:5e60f85d6c26 233 {
tsuparit 0:5e60f85d6c26 234 pc.printf("Instrumnet Reset\n");
tsuparit 0:5e60f85d6c26 235 ser_para_reset=1; //pass flag stop all operation
tsuparit 0:5e60f85d6c26 236 //LCDI2C4Bit_init();
tsuparit 0:5e60f85d6c26 237 LiquidCrystal_I2Cinit();
tsuparit 0:5e60f85d6c26 238 LCDI2C4Bit_clear();
tsuparit 0:5e60f85d6c26 239 //LCDI2C4Bit_backLight(true);
tsuparit 0:5e60f85d6c26 240 LiquidCrystal_I2Cbacklight();
tsuparit 0:5e60f85d6c26 241
tsuparit 0:5e60f85d6c26 242 LCDI2C4Bit_cursorTo(0,0);
tsuparit 0:5e60f85d6c26 243 sprintf (str," --- RESET ----");
tsuparit 0:5e60f85d6c26 244 LCDI2C4Bit_printIn(str);
tsuparit 0:5e60f85d6c26 245 wait(0.25);
tsuparit 3:e658376f6e27 246 NVIC_SystemReset();//softreser
tsuparit 0:5e60f85d6c26 247 }
tsuparit 0:5e60f85d6c26 248 else if (strcmp(rx_buffer,":SYS:VER")==0)
tsuparit 0:5e60f85d6c26 249 {
tsuparit 0:5e60f85d6c26 250 pc.printf("%.1f\n",firmware_version);
tsuparit 0:5e60f85d6c26 251 }
tsuparit 0:5e60f85d6c26 252 else if (strcmp(rx_buffer,":SYST:ERR")==0)
tsuparit 0:5e60f85d6c26 253 {
tsuparit 0:5e60f85d6c26 254 pc.printf("0\n");
tsuparit 0:5e60f85d6c26 255 }
tsuparit 0:5e60f85d6c26 256 //else if (strcmp(rx_buffer,"a11000")==0) //Read Input "aX1"
tsuparit 0:5e60f85d6c26 257 else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='1')) // Write Output "aX1"
tsuparit 0:5e60f85d6c26 258 {
tsuparit 3:e658376f6e27 259 pc.printf("%dOK\n",INPUT);
tsuparit 0:5e60f85d6c26 260 }
tsuparit 0:5e60f85d6c26 261 else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='2')) // Write Output "aX2"
tsuparit 0:5e60f85d6c26 262 {
tsuparit 2:82dbbbff7518 263 //writer
tsuparit 2:82dbbbff7518 264 unsigned char b3,b2,b1;
tsuparit 2:82dbbbff7518 265 unsigned int outdata=0;
tsuparit 2:82dbbbff7518 266
tsuparit 2:82dbbbff7518 267 if (rx_buffer[3]!=0)
tsuparit 2:82dbbbff7518 268 {
tsuparit 2:82dbbbff7518 269 outdata=rx_buffer[3]-'0';
tsuparit 2:82dbbbff7518 270 }
tsuparit 2:82dbbbff7518 271 if (rx_buffer[4]!=0)
tsuparit 2:82dbbbff7518 272 {
tsuparit 2:82dbbbff7518 273 outdata=outdata*10+rx_buffer[4]-'0';
tsuparit 2:82dbbbff7518 274 }
tsuparit 2:82dbbbff7518 275 if (rx_buffer[5]!=0)
tsuparit 2:82dbbbff7518 276 {
tsuparit 2:82dbbbff7518 277 outdata=outdata*10+rx_buffer[5]-'0';
tsuparit 2:82dbbbff7518 278 }
tsuparit 3:e658376f6e27 279 int OUTBUF=0;
tsuparit 3:e658376f6e27 280 if bitchk(outdata,0) {OUT0=ON;OUTBUF=OUTBUF+1;} else OUT0=OFF;
tsuparit 3:e658376f6e27 281 if bitchk(outdata,1) {OUT1=ON;OUTBUF=OUTBUF+2;} else OUT1=OFF;
tsuparit 3:e658376f6e27 282 if bitchk(outdata,2) {OUT2=ON;OUTBUF=OUTBUF+4;} else OUT2=OFF;
tsuparit 3:e658376f6e27 283 if bitchk(outdata,3) {OUT3=ON;OUTBUF=OUTBUF+8;} else OUT3=OFF;
tsuparit 2:82dbbbff7518 284
tsuparit 3:e658376f6e27 285 if bitchk(outdata,4) {OUT4=ON;OUTBUF=OUTBUF+16;} else OUT4=OFF;
tsuparit 3:e658376f6e27 286 if bitchk(outdata,5) {OUT5=ON;OUTBUF=OUTBUF+32;} else OUT5=OFF;
tsuparit 3:e658376f6e27 287 if bitchk(outdata,6) {OUT6=ON;OUTBUF=OUTBUF+64;} else OUT6=OFF;
tsuparit 6:96d89c2f4bf9 288 if bitchk(outdata,7)
tsuparit 6:96d89c2f4bf9 289 {OUT7=ON;OUTBUF=OUTBUF+128;
tsuparit 6:96d89c2f4bf9 290 #ifdef BUZZVSP7
tsuparit 6:96d89c2f4bf9 291 BUZZER=1;
tsuparit 6:96d89c2f4bf9 292 #endif
tsuparit 6:96d89c2f4bf9 293
tsuparit 6:96d89c2f4bf9 294 }
tsuparit 6:96d89c2f4bf9 295 else
tsuparit 6:96d89c2f4bf9 296 {
tsuparit 6:96d89c2f4bf9 297 #ifdef BUZZVSP7
tsuparit 6:96d89c2f4bf9 298 BUZZER=1;
tsuparit 6:96d89c2f4bf9 299 #endif
tsuparit 6:96d89c2f4bf9 300
tsuparit 6:96d89c2f4bf9 301
tsuparit 6:96d89c2f4bf9 302 OUT7=OFF;
tsuparit 6:96d89c2f4bf9 303 }
tsuparit 3:e658376f6e27 304 OUTPUT=OUTBUF;
tsuparit 3:e658376f6e27 305 pc.printf("%dOK\n",outdata);
tsuparit 0:5e60f85d6c26 306 }
tsuparit 0:5e60f85d6c26 307 else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='3')) // Write Output "aX2"
tsuparit 0:5e60f85d6c26 308 {
tsuparit 3:e658376f6e27 309 pc.printf("%dOK\n",OUTPUT);
tsuparit 0:5e60f85d6c26 310 }
tsuparit 0:5e60f85d6c26 311 else
tsuparit 0:5e60f85d6c26 312 {//unknow / handle comand
tsuparit 2:82dbbbff7518 313 //pc.printf( "UNKNOWN %s=>%s,%s\n",rx_buffer,rx_buffer_CMD,rx_buffer_ARG);
tsuparit 2:82dbbbff7518 314 pc.printf( "UNKNOWN %s=>%s,%s\n",rx_buffer);
tsuparit 7:3cb877cb7393 315 }
tsuparit 7:3cb877cb7393 316
tsuparit 7:3cb877cb7393 317
tsuparit 7:3cb877cb7393 318 */
tsuparit 7:3cb877cb7393 319
tsuparit 7:3cb877cb7393 320
tsuparit 7:3cb877cb7393 321
tsuparit 7:3cb877cb7393 322
tsuparit 0:5e60f85d6c26 323 rx_pointer=0;//Reset at the end
tsuparit 0:5e60f85d6c26 324 com_timer.stop();
tsuparit 2:82dbbbff7518 325 break;//exit while
tsuparit 2:82dbbbff7518 326 } //end foud "terminal of command//
tsuparit 2:82dbbbff7518 327
tsuparit 0:5e60f85d6c26 328
tsuparit 2:82dbbbff7518 329
tsuparit 2:82dbbbff7518 330 } //end while data read aviable
tsuparit 3:e658376f6e27 331
tsuparit 2:82dbbbff7518 332
tsuparit 0:5e60f85d6c26 333
tsuparit 0:5e60f85d6c26 334 }
tsuparit 0:5e60f85d6c26 335
tsuparit 0:5e60f85d6c26 336
tsuparit 0:5e60f85d6c26 337 int main()
tsuparit 0:5e60f85d6c26 338 {
tsuparit 0:5e60f85d6c26 339
tsuparit 0:5e60f85d6c26 340
tsuparit 0:5e60f85d6c26 341
tsuparit 0:5e60f85d6c26 342
tsuparit 5:a693866be4b3 343 LiquidCrystal_I2C_SETUP(0x27,20,4);
tsuparit 0:5e60f85d6c26 344 LiquidCrystal_I2Cinit();
tsuparit 0:5e60f85d6c26 345 LiquidCrystal_I2Cbacklight();
tsuparit 0:5e60f85d6c26 346
tsuparit 0:5e60f85d6c26 347 LiquidCrystal_I2CsetCursor(0,1);
tsuparit 0:5e60f85d6c26 348 sprintf (str, " SCHAFFNER ");
tsuparit 0:5e60f85d6c26 349 LCDI2C4Bit_printIn(str);
tsuparit 0:5e60f85d6c26 350 LiquidCrystal_I2CsetCursor(0,0);
tsuparit 0:5e60f85d6c26 351 sprintf (str, "SerailDIO v:%.2f ",1.00) ;
tsuparit 0:5e60f85d6c26 352 LCDI2C4Bit_printIn(str);
tsuparit 0:5e60f85d6c26 353
tsuparit 2:82dbbbff7518 354 #ifdef USBSerialOption
tsuparit 2:82dbbbff7518 355
tsuparit 2:82dbbbff7518 356 #else
tsuparit 2:82dbbbff7518 357 pc.baud(9600); // set what you want here depending on your terminal program speed
tsuparit 2:82dbbbff7518 358 #endif
tsuparit 2:82dbbbff7518 359
tsuparit 0:5e60f85d6c26 360
tsuparit 0:5e60f85d6c26 361 com_timer.start();
tsuparit 0:5e60f85d6c26 362 com_timer.stop();
tsuparit 0:5e60f85d6c26 363 com_timer.reset();
tsuparit 0:5e60f85d6c26 364
tsuparit 3:e658376f6e27 365 wait(0.1);
tsuparit 3:e658376f6e27 366
tsuparit 3:e658376f6e27 367 pc.attach(&serial_pc_rx_services); // Use interrupt services !!
tsuparit 5:a693866be4b3 368
tsuparit 7:3cb877cb7393 369 OUT1=0;
tsuparit 7:3cb877cb7393 370
tsuparit 7:3cb877cb7393 371 #define BUZZER_EN 0
tsuparit 7:3cb877cb7393 372
tsuparit 7:3cb877cb7393 373
tsuparit 7:3cb877cb7393 374
tsuparit 7:3cb877cb7393 375 CAMTRIGGER=1; // set signal ready for cam trigger
tsuparit 7:3cb877cb7393 376 while(1);
tsuparit 7:3cb877cb7393 377
tsuparit 7:3cb877cb7393 378 while(0)
tsuparit 7:3cb877cb7393 379 {
tsuparit 7:3cb877cb7393 380 if (BUZZER_EN!=0) BUZZER=1;
tsuparit 7:3cb877cb7393 381 OUT0=0;
tsuparit 7:3cb877cb7393 382 wait(0.1);
tsuparit 7:3cb877cb7393 383 if (BUZZER_EN!=0) BUZZER=0;
tsuparit 7:3cb877cb7393 384 wait(0.1);
tsuparit 7:3cb877cb7393 385 OUT0=1;
tsuparit 7:3cb877cb7393 386
tsuparit 7:3cb877cb7393 387
tsuparit 7:3cb877cb7393 388 wait(1.0);
tsuparit 7:3cb877cb7393 389
tsuparit 7:3cb877cb7393 390
tsuparit 7:3cb877cb7393 391 }
tsuparit 7:3cb877cb7393 392
tsuparit 7:3cb877cb7393 393
tsuparit 0:5e60f85d6c26 394 while(1)
tsuparit 0:5e60f85d6c26 395 {
tsuparit 5:a693866be4b3 396
tsuparit 5:a693866be4b3 397 if (loopinilcd++>100)
tsuparit 5:a693866be4b3 398 {
tsuparit 5:a693866be4b3 399 loopinilcd=0;
tsuparit 5:a693866be4b3 400 LiquidCrystal_I2Cinit();
tsuparit 5:a693866be4b3 401 LiquidCrystal_I2Cbacklight();
tsuparit 5:a693866be4b3 402 }
tsuparit 5:a693866be4b3 403
tsuparit 3:e658376f6e27 404 Input_sampling(512);
tsuparit 0:5e60f85d6c26 405 LiquidCrystal_I2CsetCursor(0,0);
tsuparit 5:a693866be4b3 406 sprintf (str, "IN:%d OUT:%d ",INPUT,OUTPUT);
tsuparit 3:e658376f6e27 407 LCDI2C4Bit_printIn(str);
tsuparit 0:5e60f85d6c26 408 LiquidCrystal_I2CsetCursor(0,1);
tsuparit 5:a693866be4b3 409
tsuparit 5:a693866be4b3 410
tsuparit 3:e658376f6e27 411 float processtime=1000.0*com_timer.read();
tsuparit 3:e658376f6e27 412 if (processtime<10.0)
tsuparit 3:e658376f6e27 413 {
tsuparit 3:e658376f6e27 414 sprintf (str, "%.1f ms:%s ",processtime,rx_buffer);
tsuparit 3:e658376f6e27 415 }
tsuparit 3:e658376f6e27 416 else
tsuparit 3:e658376f6e27 417 {
tsuparit 3:e658376f6e27 418 sprintf (str, " %.1f ms:%s ",processtime,rx_buffer);
tsuparit 5:a693866be4b3 419 }
tsuparit 5:a693866be4b3 420
tsuparit 0:5e60f85d6c26 421 LCDI2C4Bit_printIn(str);
tsuparit 5:a693866be4b3 422
tsuparit 5:a693866be4b3 423
tsuparit 5:a693866be4b3 424
tsuparit 5:a693866be4b3 425 char strbuf[50];
tsuparit 5:a693866be4b3 426
tsuparit 5:a693866be4b3 427
tsuparit 5:a693866be4b3 428 LiquidCrystal_I2CsetCursor(0,3);
tsuparit 5:a693866be4b3 429 sprintf (str, "#");
tsuparit 5:a693866be4b3 430 sprintf (strbuf, " ");
tsuparit 5:a693866be4b3 431
tsuparit 5:a693866be4b3 432 if (OUT0)
tsuparit 5:a693866be4b3 433 {
tsuparit 5:a693866be4b3 434 sprintf (strbuf, "K1 ");
tsuparit 5:a693866be4b3 435 strcat(str,strbuf);
tsuparit 5:a693866be4b3 436 }
tsuparit 5:a693866be4b3 437
tsuparit 5:a693866be4b3 438 if (OUT1)
tsuparit 5:a693866be4b3 439 {
tsuparit 5:a693866be4b3 440 sprintf (strbuf, "K2 ");
tsuparit 5:a693866be4b3 441 strcat(str,strbuf);
tsuparit 5:a693866be4b3 442 }
tsuparit 5:a693866be4b3 443
tsuparit 5:a693866be4b3 444 if (OUT2)
tsuparit 5:a693866be4b3 445 {
tsuparit 5:a693866be4b3 446 sprintf (strbuf, "K3 ");
tsuparit 5:a693866be4b3 447 strcat(str,strbuf);
tsuparit 5:a693866be4b3 448 }
tsuparit 5:a693866be4b3 449
tsuparit 5:a693866be4b3 450 if (OUT3)
tsuparit 5:a693866be4b3 451 {
tsuparit 5:a693866be4b3 452 sprintf (strbuf, "K4 ");
tsuparit 5:a693866be4b3 453 strcat(str,strbuf);
tsuparit 5:a693866be4b3 454 }
tsuparit 5:a693866be4b3 455
tsuparit 5:a693866be4b3 456
tsuparit 5:a693866be4b3 457
tsuparit 5:a693866be4b3 458
tsuparit 5:a693866be4b3 459
tsuparit 5:a693866be4b3 460 if (OUT4)
tsuparit 5:a693866be4b3 461 {
tsuparit 5:a693866be4b3 462 sprintf (strbuf, "RE ");
tsuparit 5:a693866be4b3 463 }
tsuparit 5:a693866be4b3 464 else
tsuparit 5:a693866be4b3 465 {
tsuparit 5:a693866be4b3 466 sprintf (strbuf, "V.");
tsuparit 5:a693866be4b3 467 }
tsuparit 5:a693866be4b3 468 strcat(str,strbuf);
tsuparit 5:a693866be4b3 469
tsuparit 5:a693866be4b3 470 if (OUT5)
tsuparit 5:a693866be4b3 471 {
tsuparit 5:a693866be4b3 472 sprintf (strbuf, "AC ");
tsuparit 5:a693866be4b3 473 }
tsuparit 5:a693866be4b3 474 else
tsuparit 5:a693866be4b3 475 {
tsuparit 5:a693866be4b3 476 sprintf (strbuf, "DC ");
tsuparit 5:a693866be4b3 477 }
tsuparit 5:a693866be4b3 478 strcat(str,strbuf);
tsuparit 5:a693866be4b3 479
tsuparit 5:a693866be4b3 480 if (OUT6)
tsuparit 5:a693866be4b3 481 {
tsuparit 5:a693866be4b3 482 sprintf (strbuf, "Di ");
tsuparit 5:a693866be4b3 483 strcat(str,strbuf);
tsuparit 5:a693866be4b3 484 }
tsuparit 5:a693866be4b3 485
tsuparit 5:a693866be4b3 486 if (OUT7)
tsuparit 5:a693866be4b3 487 {
tsuparit 5:a693866be4b3 488 sprintf (strbuf, "POW ");
tsuparit 5:a693866be4b3 489 strcat(str,strbuf);
tsuparit 5:a693866be4b3 490 }
tsuparit 5:a693866be4b3 491 sprintf (strbuf, " ");
tsuparit 5:a693866be4b3 492 strcat(str,strbuf);
tsuparit 5:a693866be4b3 493
tsuparit 5:a693866be4b3 494
tsuparit 5:a693866be4b3 495 LCDI2C4Bit_printIn(str);
tsuparit 5:a693866be4b3 496
tsuparit 5:a693866be4b3 497
tsuparit 5:a693866be4b3 498
tsuparit 5:a693866be4b3 499
tsuparit 0:5e60f85d6c26 500 if (com_timer.read()>5.0)
tsuparit 0:5e60f85d6c26 501 {
tsuparit 5:a693866be4b3 502 rx_pointer=0;//Reset at the end
tsuparit 5:a693866be4b3 503 com_timer.stop();
tsuparit 0:5e60f85d6c26 504 }
tsuparit 0:5e60f85d6c26 505
tsuparit 0:5e60f85d6c26 506 }
tsuparit 0:5e60f85d6c26 507
tsuparit 0:5e60f85d6c26 508
tsuparit 0:5e60f85d6c26 509 }