
Impedance Fast Circuitry Software
Fork of DSP_200kHz by
main.cpp
- Committer:
- bmazzeo
- Date:
- 2016-02-17
- Revision:
- 55:2526b3317bc8
- Parent:
- 54:1697dc574b96
- Child:
- 56:7e08cbc3a4f1
File content as of revision 55:2526b3317bc8:
#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); // 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[]; 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"); while(1) { //DMA_TCD2_CSR //int counter = 0; //pc.printf("Sample_array0[1]:%d\r\n",sample_array0[counter]); //ADC0_SC1A = 0x0C; //AIEN = 0, DIFF = 0, Channel = AD12 (PTB2) //ADC1_SC1A = 0x0E; //AIEN = 0, DIFF = 0, Channel = AD14 (PTB10) //while( (ADC0_SC1A&ADC_SC1_COCO_MASK)) {} //while( (ADC1_SC1A&ADC_SC1_COCO_MASK)) {} //pc.printf("ADC0_RA:%d\r\n", ADC0_RA); //pc.printf("ADC1_RA:%d\r\n", ADC1_RA); //for(int i = 0; i < len; i++) pc.printf("A%i: %d\t %d\r\n",i,sample_array0[i],sample_array1[i]); //for(int i = 0; i < len; i++) pc.printf("B%i: %d\t %d\r\n",i,static_input_array0[i],static_input_array1[i]); //wait_ms(1000); /* int store_var = DMA_TCD2_CSR; if (store_var == 0x220) { DAC0_DAT0H = 0x0F; wait_us(10); //DMA_TCD0_CSR = 0x260; } if (store_var == 0x260) { DAC0_DAT0H = 0x00; wait_us(10); } //int store_var = DMA_TCD0_CSR; //pc.printf("DMA0: %x\r\n", DMA_TCD0_CSR); //pc.printf("DMA1: %x\r\n", DMA_TCD1_CSR); //pc.printf("DMA2: %x\r\n", DMA_TCD2_CSR); //pc.printf("DMA3: %x\r\n", DMA_TCD3_CSR); //for(int i = 0; i < len; i++) pc.printf("B%i: %d\t %d\r\n",i,static_input_array0[i],static_input_array1[i]); for (int i = 0: i < len; i++) { static_output_array[i] = static_input_array0[i] >> 4; } //wait_us(100); */ 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); 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_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); 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 'V': case 'v': pc.printf("PDB: %i\r\n",PDB0_CNT); break; } } } }