frederic blanc
/
HMA_HelloWord
test
main.cpp
- Committer:
- fblanc
- Date:
- 2014-06-06
- Revision:
- 4:75077e05de3e
- Parent:
- 3:7acf6d1a6b1e
- Child:
- 5:832b59a73dec
File content as of revision 4:75077e05de3e:
#include "mbed.h" #include "USBSerial.h" //#define BAUD 460800 //#define BAUD 9600 #define __LPC1768 #if defined( __LPC1768) //Serial pc(USBTX, USBRX); USBSerial pc; DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); AnalogIn adc_1(p16); AnalogIn adc_2(p17); #endif #if defined( __KL25) USBSerial pc; DigitalOut led2(LED_GREEN); DigitalOut led3(LED_RED); DigitalOut led4(LED_BLUE); AnalogIn adc_1(PTC1); AnalogIn adc_2(PTC2); #endif uint16_t T_hma_u16[2][2048]; uint16_t index_hma_write=0; uint16_t index_hma_read=0; bool t_write=0; char str[256]; uint8_t start_str=0; bool flag_write_USB=0; Ticker flipperADC; void flipADC() { T_hma_u16[t_write][index_hma_write++]=adc_1.read_u16(); //read ADC T_hma_u16[t_write][index_hma_write++]=adc_2.read_u16(); //read ADC //T_hma_u16[t_write][index_hma_write++]=0x00FF; if(index_hma_write>2000) { flag_write_USB=1; t_write=!t_write; //toggel buffer index_hma_read=index_hma_write-2; index_hma_write=0; } } Ticker flipperUSB; void flipUSB() { flag_write_USB=1; } void pc_rx(void) { led4=1; for(; pc.readable()==true; ++start_str) { str[start_str]=pc.getc(); } //pc.printf("recv:%s",str); if( strncmp(str,"*IDN?",strlen("*IDN?"))==0 ) { //pc.printf("HMA\r"); led3=1; pc.printf("HMA serial\r"); start_str=0; for(int i=0; i<256; ++i) { str[i]='\0'; } } else if( strncmp(str,"MEASure",strlen("MEASure"))==0 ) { for(int i=0; i<256; ++i) { str[i]='\0'; } flipperADC.attach_us(&flipADC, 1000); //500us } else if( strncmp(str,"ABORt",strlen("ABORt"))==0 ) { for(int i=0; i<256; ++i) { str[i]='\0'; } flipperADC.detach(); t_write=0; index_hma_read=0; index_hma_write=0; } for(int i=0; i<start_str; ++i) { if(str[i]=='\r') { for(int j=0; j<256; ++j) { str[j]='\0'; } start_str=0; } } } int main() { led2=0; led3=0; led4=0; // pc.baud(BAUD); pc.printf("HMA serial\r"); for(int i=0; i<256; ++i) { str[i]='\0'; } while(1) { if (pc.readable()) { pc_rx(); } if(flag_write_USB==1) { flag_write_USB=0; pc.printf("%04d%c\r",index_hma_read,'\0'); //'\0'fin de chaine ASCII '\r' fin de transmission char* ptr=(char*)&T_hma_u16[!t_write][0]; for(uint16_t i=0; i<index_hma_read; ++i) { pc.putc(*ptr++); pc.putc(*ptr++); } } } }