void main(void) { //////// //INRQ INIT INTCR_IRQEN = 1; //enables IRQ interrupts INTCR_IRQE = 1; //IRQ interrupts are edge-triggered //////// //////// //KEYBOARD SETUP DDRT = 0x70; //enable PortT, 7 input, 6-4 output, 3-0 input PERT = 0x0F; //enable PortT, bits 3-0 for pull device PPST = 0x00; //set PortT, bits 3-0 for pull-UP resistors PTT = 0x00; //initialize all output pins to low //PortE, bits 1-0 are always set to input //////// //////// //INPUT CAPTURE/OUTPUT COMPARE REGISTER INITIALIZATION TSCR1_TEN = 1; //enable TCNT (timer counter) TSCR2 = (0xF8 & TSCR2) | TIMER_PRESCALE; //set prescaler to TCNT/(2^6) TIOS_IOS7 = 0; //set TC7 to input capture TFLG1_C7F = 1; //reset TC7 interrupt flags TIOS_IOS0 = 0; //set TC0 to output compare TFLG1_C0F = 1; //reset TC0 interrupt flags TCTL3_EDG7B = 0; //capture rising edges TCTL3_EDG7A = 1; //////// //////// //LED DISPLAY INITIALIZATION DDRAD = 0xFF; //enable PortAD, 7-0 output PTAD = 0x00; //////// /////// //GLOBAL VARIABLE INITIALIZATION keyboard_state = KEYBOARD_READY; measurement_state = MEASUREMENT_WAITING; while(1) { if( keyboard_state == KEYBOARD_PRESSED ) { break; } } //////// //DATA ACQUISIION //100 Hz init_pwm(4,5,250); acquire_data(); while(1) { if( keyboard_state == KEYBOARD_PRESSED ) { break; } } //500 Hz init_pwm(4,1,250); acquire_data(); while(1) { if( keyboard_state == KEYBOARD_PRESSED ) { break; } } //1000 Hz init_pwm(3,1,250); acquire_data(); while(1) { if( keyboard_state == KEYBOARD_PRESSED ) { break; } } //2000 Hz init_pwm(2,1,250); acquire_data(); while(1) { if( keyboard_state == KEYBOARD_PRESSED ) { break; } } //////// return 0; }
int main(void) { int j, jj; int sleep_sec=2; char bufD[128]; int ind, Mcount; int M=50; int plan; pg_id = cpgopen("/XSERVE"); cpgpap(6.00, 0.8); timedata = fftw_malloc(sizeof(double) * (N+1)); freqdata = fftw_malloc(sizeof(fftw_complex) * (N+1)); read_count=N*M; mem_size=read_count * 2; ai_buf = (I16*)malloc(mem_size); if ((fp=fopen("SatPosData","w"))==NULL) { printf("Cannot open file. \n"); exit(1); } for (j=1; j<=max_scans; j++) { printf("\nPause %d seconds ...",sleep_sec); sleep(sleep_sec); printf("\n\nAcquisition %d\n",j); fprintf(fp,"\nAcquisition: %d\n",j); strcpy(bufD, send_command0("Apollo","GET_TIME$")); printf("Universal Time: %s",bufD); fprintf(fp, "UT: %s",bufD); printf("Satellites above local horizon:\n"); getSatInfo0(); getSatInfo1(); acquire_data(); transfer_and_scale((U16*)ai_buf, channel+1); for (k=0; k<(N/2)+1; k++) accumFreqData[k]=0; printf("Integrating ... %i %i-blocks",M,N); for (Mcount=1; Mcount<=M; Mcount++) { for (ind=0; ind<N; ind++) { timedata[ind]=voltarray[ind+(N*(Mcount-1))]; } // printf("%i ",Mcount); plan=(j==1)&(Mcount==1); if (plan) { p=fftw_plan_dft_r2c_1d(N, timedata, freqdata, FFTW_FORWARD); } fftw_execute(p); for (k=0; k<(N/2)+1; k++) { accumFreqData[k]+=(sqrt(freqdata[k][0]*freqdata[k][0]+freqdata[k][1]*freqdata[k][1])/(M*256)); } } fprintf(fp, "Bin Voltages \n"); for (jj=0; jj<=240; jj+=10) { for (k=jj; k<(jj+10); k++) fprintf(fp, "%f ", accumFreqData[k]); fprintf(fp, "\n"); } // plot_channel_data(); plot_freq_data(); } int fclose(FILE *fp); postfft(); free( ai_buf ); printf("\n\nEnd of program. "); //getch(); putchar('\n'); return 0; }
void nullsrv() { SOCKET stcpactive = INVALID_SOCKET; struct sockaddr_in sin1; struct timeval timeout; // Timeout struct for select int size; int cnt; char *pBuf; HANDLE hBuffer; //gpioEnableGlobalInterrupt(); // Allocate the file environment for this task fdOpenSession(TaskSelf()); TaskSleep(15000); platform_write("Raw Eth Task Started ... \n"); // Create the main TCP listen socket platform_write("creating main TCP listen socket\n"); int k=0; int n=0; IMG_STORE_REQST_TYP a; int *data; UInt32 time1,time2; for(;;) { //time1=Clock_getTicks(); a.fps=acquire_data(); a.number=min((int)a.fps*sizeof(int),PULSE_SAMPLE*sizeof(int)); //time2=Clock_getTicks(); ///platform_write("time taken for acquire data is %lu \n",(unsigned long)(time2-time1)); //time1=Clock_getTicks(); for(k=0;k<2;k++) { if(k==0) data=&data_bufferA[0]; else data=&data_bufferB[0]; //WWdis_data(); stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if( stcp == INVALID_SOCKET ) { int ret=fdError(); goto leave; } timeout.tv_sec = 30; timeout.tv_usec = 0; setsockopt( stcp, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof( timeout ) ); setsockopt( stcp, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof( timeout ) ); //timeout.tv_sec = 3; //int opt = 1; //setsockopt( stcp, SOL_SOCKET, SO_BLOCKING , &opt, sizeof( opt ) ); platform_write("created main TCP client socket\n"); // Set Port = 1001, leaving IP address = Any bzero( &sin1, sizeof(struct sockaddr_in) ); sin1.sin_family = AF_INET; sin1.sin_addr.s_addr =inet_addr(PCStaticIP); sin1.sin_port = htons(7000); sin1.sin_len = sizeof( sin1 ); platform_write("LLL %d \n",(sin1.sin_addr.s_addr)); //fcntl(stcp, F_SETFL, O_NONBLOCK); //while(1) if( connect(stcp, (struct sockaddr *) &sin1, sizeof(sin1)) < 0) { if (fdError() == EINPROGRESS) { fd_set wrsd; struct timeval tv; FD_ZERO(&wrsd); FD_SET(stcp, &wrsd); tv.tv_sec = 2; tv.tv_usec = 0; int ret = fdSelect((int)stcp, 0, &wrsd, 0, &tv ); if(ret>0) { int err, lenErr; lenErr = sizeof(err); ret = getsockopt(stcp, SOL_SOCKET, SO_ERROR, &err, &lenErr); if(ret==0 && err==0) { platform_write("connection completed"); break; } else { platform_write("Attempting to connect again"); continue; } } } } platform_write("completed connect \n"); a.hydrophone=k; n=0; n = send(stcp,&a,sizeof(a),0); if (n < 0) { perror("ERROR writing to socket"); break; } platform_write("writing hydrophone %d,bytes %d\n",k,a.number); n=0; int c=0; //platform_write("writing %s \n",data); do { n = send(stcp,data,a.number-c,0); //platform_write("writing %d bytes \n",n); if (n < 0) { perror("ERROR writing to socket"); break; } c=c+n; data=data+n; }while(c<a.number); if (n < 0) break; //free(orig); int status; HANDLE hbuffer; n = recv(stcp, &status, sizeof(status),0); if(status==0) { platform_write("Client request success\n"); } else { platform_write("Client request error"); continue; } if( stcp != INVALID_SOCKET ) fdClose(stcp); } if( stcp != INVALID_SOCKET ) { shutdown(stcp,0); fdClose(stcp); } //time2=Clock_getTicks(); platform_write("time taken for data transfer is %lu \n",(unsigned long)(time2-time1)); //TaskSleep(5);fe } leave: TaskSleep(5000); // We only get here on an error - close the sockets // if( stcp != INVALID_SOCKET ) // fdClose( stcp ); platform_write("NullSrv Fatal Error\n"); // NetworkClose((HANDLE)TaskSelf()); // This task is killed by the system - here, we block //TaskBlock( TaskSelf() ); }