test
Dependencies: MINI8I8O5A000 mbed EEPROM_P4 IICLCD_LOWCOST
Diff: main.cpp
- Revision:
- 3:e658376f6e27
- Parent:
- 2:82dbbbff7518
- Child:
- 4:c08d713f8cfc
--- a/main.cpp Tue Oct 13 08:50:26 2015 +0000 +++ b/main.cpp Tue Oct 13 10:27:11 2015 +0000 @@ -75,35 +75,22 @@ #else while(pc.readable()) #endif - { - - - inchar =pc.getc(); - - - myled = 0; - - - - - + { + inchar =pc.getc(); if ( rx_pointer==0) //first incoming character clear old buffer { for (i=0;i<RXBUFFERSIZE;i++) rx_buffer[i]=0; //clear old buffer - // com_timer.reset(); - // com_timer.start(); + com_timer.reset(); + com_timer.start(); } - rx_buffer[rx_pointer]=inchar; //keep char in buffer... - + rx_buffer[rx_pointer]=inchar; //keep char in buffer... rx_pointer++; if (rx_pointer>=(RXBUFFERSIZE-10)) { - //rx_pointer=200; - //rx_buffer[rx_pointer]=0; rx_pointer=0;//Error buffer overflow pc.printf("ERR:buffer overflow\n"); } @@ -159,7 +146,7 @@ sprintf (str," --- RESET ----"); LCDI2C4Bit_printIn(str); wait(0.25); - NVIC_SystemReset();//softreser + NVIC_SystemReset();//softreser } else if (strcmp(rx_buffer,":SYS:VER")==0) { @@ -172,7 +159,7 @@ //else if (strcmp(rx_buffer,"a11000")==0) //Read Input "aX1" else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='1')) // Write Output "aX1" { - pc.printf("OK%d\n",11); + pc.printf("%dOK\n",INPUT); } else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='2')) // Write Output "aX2" { @@ -192,24 +179,22 @@ { outdata=outdata*10+rx_buffer[5]-'0'; } - - if bitchk(outdata,0) OUT0=ON; else OUT0=OFF; - if bitchk(outdata,1) OUT1=ON; else OUT1=OFF; - if bitchk(outdata,2) OUT2=ON; else OUT2=OFF; - if bitchk(outdata,3) OUT3=ON; else OUT3=OFF; + int OUTBUF=0; + if bitchk(outdata,0) {OUT0=ON;OUTBUF=OUTBUF+1;} else OUT0=OFF; + if bitchk(outdata,1) {OUT1=ON;OUTBUF=OUTBUF+2;} else OUT1=OFF; + if bitchk(outdata,2) {OUT2=ON;OUTBUF=OUTBUF+4;} else OUT2=OFF; + if bitchk(outdata,3) {OUT3=ON;OUTBUF=OUTBUF+8;} else OUT3=OFF; - if bitchk(outdata,4) OUT4=ON; else OUT4=OFF; - if bitchk(outdata,5) OUT5=ON; else OUT5=OFF; - if bitchk(outdata,6) OUT6=ON; else OUT6=OFF; - if bitchk(outdata,7) OUT7=ON; else OUT7=OFF; - - - - pc.printf("OK%d\n",outdata); + if bitchk(outdata,4) {OUT4=ON;OUTBUF=OUTBUF+16;} else OUT4=OFF; + if bitchk(outdata,5) {OUT5=ON;OUTBUF=OUTBUF+32;} else OUT5=OFF; + if bitchk(outdata,6) {OUT6=ON;OUTBUF=OUTBUF+64;} else OUT6=OFF; + if bitchk(outdata,7) {OUT7=ON;OUTBUF=OUTBUF+128;} else OUT7=OFF; + OUTPUT=OUTBUF; + pc.printf("%dOK\n",outdata); } else if ( (rx_buffer[0]=='a') & (rx_buffer[1]==('0'+boardaddress)) & (rx_buffer[2]=='3')) // Write Output "aX2" { - pc.printf("OK%d\n",33); + pc.printf("%dOK\n",OUTPUT); } else {//unknow / handle comand @@ -224,7 +209,7 @@ } //end while data read aviable - myled = 1; + } @@ -254,30 +239,29 @@ #endif - //pc.printf( "RST\n"); com_timer.start(); com_timer.stop(); com_timer.reset(); - wait(1); - - while(0) - { - serial_pc_rx_services(); - } - - - pc.attach(&serial_pc_rx_services); // + wait(0.1); + + pc.attach(&serial_pc_rx_services); // Use interrupt services !! while(1) { - + Input_sampling(512); LiquidCrystal_I2CsetCursor(0,0); - sprintf (str, " I:%d O:%d ",255,255); - LCDI2C4Bit_printIn(str); - - + sprintf (str, "I:%d O:%d ",INPUT,OUTPUT); + LCDI2C4Bit_printIn(str); LiquidCrystal_I2CsetCursor(0,1); - sprintf (str, "%.2fs:%s ",com_timer.read(),rx_buffer); + float processtime=1000.0*com_timer.read(); + if (processtime<10.0) + { + sprintf (str, "%.1f ms:%s ",processtime,rx_buffer); + } + else + { + sprintf (str, " %.1f ms:%s ",processtime,rx_buffer); + } LCDI2C4Bit_printIn(str); if (com_timer.read()>5.0) {