
Impedance Fast Circuitry Software
Fork of DSP_200kHz by
main.cpp
- Committer:
- bmazzeo
- Date:
- 2016-02-23
- Revision:
- 63:7903a33e2fd4
- Parent:
- 61:a56cca07d4a6
- Child:
- 64:bb4a4bd57681
File content as of revision 63:7903a33e2fd4:
#include "mbed.h" // Sampling #include "DMA_sampling/adc.h" #include "DMA_sampling/dac.h" #include "DMA_sampling/pdb.h" // for debug purposes Serial pc(USBTX, USBRX); DigitalOut led_red(LED_RED); DigitalOut led_green(LED_GREEN); DigitalOut led_blue(LED_BLUE); DigitalOut status_0(D0); DigitalOut status_1(D1); // defined in dma.cpp extern int len; extern uint16_t sample_array0[]; extern uint16_t sample_array1[]; extern uint16_t static_input_array0[]; extern uint16_t static_input_array1[]; extern uint16_t static_output_array0[]; extern uint16_t output_array0[]; extern uint16_t sampling_status; using namespace std; int main() { led_blue = 1; led_green = 1; led_red = 1; pc.baud(230400); pc.printf("Starting\r\n"); pdb_init(); // Initalize PDB dac_init(); // initializes DAC adc_init(); // always initialize adc before dma pc.printf("ADC Initialized\r\n"); dma_init(); // initializes DMAs dma_reset(); // This clears any DMA triggers that may have gotten things into a different state led_green = 1; pc.printf("\r\n\r\n\r\n"); //pdb_start(); /* while(1) { while(sampling_status == 0) { led_green = 1; status_0 = 1; } sampling_status = 0; led_green = 0; status_0 = 0; status_1 = 1; for(int i = 0; i < len; i++) { static_output_array0[i] = static_input_array0[i] >> 4; //pc.printf("%i\r\n", static_input_array0[i]); } status_1 = 0; } } */ while(1) { if(pc.readable() > 0) { char temp = pc.getc(); switch(temp) { case 'F': // clear the samples case 'f': for(int i = 0; i < len; i++) {sample_array0[i] = 0; sample_array1[i] = 0;} pc.printf("Arrays cleared\r\n"); // then display the samples break; case 'S': // display what's been sampled case 's': for(int i = 0; i < len; i++) pc.printf("%i: %f\t %f\t %f\t %f\r\n",i,sample_array0[i]*3.3/65535,sample_array1[i]*3.3/65535,static_input_array0[i]*3.3/65535,static_input_array1[i]*3.3/65535); for(int i = len; i < len*2; i++) pc.printf("%i: %f\t %f\t %f\t %f\r\n",i,sample_array0[i]*3.3/65535,sample_array1[i]*3.3/65535,(float) 100, (float) 100); pc.printf("\r\n"); //pc.printf("0: %f\t %f\t %f\t %f\r\n",0,sample_array0[0]*3.3/65535,sample_array1[0]*3.3/65535,static_input_array0[0]*3.3/65535,static_input_array1[0]*3.3/65535); //pc.printf("\r\n"); break; case 'D': // DMA debug case 'd': pc.printf("DMA Status:\r\n"); pc.printf("DMA_TCD0_SOFF: %x\r\n", DMA_TCD0_SOFF); pc.printf("DMA_TCD1_SOFF: %x\r\n", DMA_TCD1_SOFF); pc.printf("DMA_TCD0_SADDR: %i\r\n", DMA_TCD0_SADDR); pc.printf("DMA_TCD0_DADDR: %i\r\n", DMA_TCD0_DADDR); pc.printf("DMA_TCD0_CITER_ELINKNO: %x\r\n", DMA_TCD0_CITER_ELINKNO); pc.printf("DMA_TCD0_BITER_ELINKNO: %x\r\n", DMA_TCD0_BITER_ELINKNO); pc.printf("DMA_TCD1_CITER_ELINKNO: %x\r\n", DMA_TCD1_CITER_ELINKNO); pc.printf("DMA_TCD1_BITER_ELINKNO: %x\r\n", DMA_TCD1_BITER_ELINKNO); pc.printf("DMA_TCD2_CITER_ELINKNO: %x\r\n", DMA_TCD2_CITER_ELINKNO); pc.printf("DMA_TCD2_BITER_ELINKNO: %x\r\n", DMA_TCD2_BITER_ELINKNO); pc.printf("DMA_TCD3_CITER_ELINKNO: %x\r\n", DMA_TCD3_CITER_ELINKNO); pc.printf("DMA_TCD3_BITER_ELINKNO: %x\r\n", DMA_TCD3_BITER_ELINKNO); pc.printf("DMA Status:\r\n"); pc.printf("DMA_TCD4_SADDR: %i\r\n", DMA_TCD4_SADDR); pc.printf("DMA_TCD4_DADDR: %i\r\n", DMA_TCD4_DADDR); pc.printf("DMA_TCD4_CITER_ELINKNO: %x\r\n", DMA_TCD4_CITER_ELINKNO); pc.printf("DMA_TCD4_BITER_ELINKNO: %x\r\n", DMA_TCD4_BITER_ELINKNO); pc.printf("DMA_TCD5_SADDR: %i\r\n", DMA_TCD5_SADDR); pc.printf("DMA_TCD5_DADDR: %i\r\n", DMA_TCD5_DADDR); pc.printf("DMA_TCD5_CITER_ELINKNO: %x\r\n", DMA_TCD5_CITER_ELINKNO); pc.printf("DMA_TCD5_BITER_ELINKNO: %x\r\n", DMA_TCD5_BITER_ELINKNO); pc.printf("DMA_TCD6_CITER_ELINKNO: %x\r\n", DMA_TCD6_CITER_ELINKNO); pc.printf("DMA_TCD6_BITER_ELINKNO: %x\r\n", DMA_TCD6_BITER_ELINKNO); pc.printf("DMA_TCD7_CITER_ELINKNO: %x\r\n", DMA_TCD7_CITER_ELINKNO); pc.printf("DMA_TCD7_BITER_ELINKNO: %x\r\n", DMA_TCD7_BITER_ELINKNO); pc.printf("DMA_TCD8_CITER_ELINKNO: %x\r\n", DMA_TCD8_CITER_ELINKNO); pc.printf("DMA_TCD8_BITER_ELINKNO: %x\r\n", DMA_TCD8_BITER_ELINKNO); pc.printf("DMA_TCD9_CITER_ELINKNO: %x\r\n", DMA_TCD9_CITER_ELINKNO); pc.printf("DMA_TCD9_BITER_ELINKNO: %x\r\n", DMA_TCD9_BITER_ELINKNO); break; // Programmable Delay Block debug case 'B': case 'b': pc.printf("Started PDB...samples being taken\r\n"); pdb_start(); break; case 'K': case 'k': pc.printf("Stopped PDB\r\n"); pdb_stop(); break; case 'T': case 't': pc.printf("One step of PDB\r\n"); pdb_step(); break; case 'V': case 'v': pc.printf("PDB: %i\r\n",PDB0_CNT); break; } } } }