Jared Baxter / Mbed 2 deprecated Impedance_Fast_Circuitry_print_V_I

Dependencies:   mbed-dsp mbed

Fork of Impedance_Fast_Circuitry by Jared Baxter

Committer:
bmazzeo
Date:
Wed Feb 17 20:26:26 2016 +0000
Revision:
55:2526b3317bc8
Parent:
54:1697dc574b96
Child:
56:7e08cbc3a4f1
This correctly implements the static creation of a buffer for processing.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:bb128f0e952f 1 #include "mbed.h"
timmey9 22:523e316cbe70 2
timmey9 52:5a40cc58c4c2 3 // Sampling
bmazzeo 53:83a90a47c1fd 4 #include "DMA_sampling/adc.h"
bmazzeo 54:1697dc574b96 5 #include "DMA_sampling/dac.h"
bmazzeo 55:2526b3317bc8 6 #include "DMA_sampling/pdb.h"
timmey9 22:523e316cbe70 7
timmey9 22:523e316cbe70 8 // for debug purposes
timmey9 18:b17ddeeb1c09 9 Serial pc(USBTX, USBRX);
timmey9 18:b17ddeeb1c09 10 DigitalOut led_red(LED_RED);
timmey9 18:b17ddeeb1c09 11 DigitalOut led_green(LED_GREEN);
timmey9 18:b17ddeeb1c09 12 DigitalOut led_blue(LED_BLUE);
timmey9 51:43143a3fc2d7 13
timmey9 52:5a40cc58c4c2 14 // defined in dma.cpp
timmey9 45:d591d138cdeb 15 extern int len;
timmey9 45:d591d138cdeb 16 extern uint16_t sample_array0[];
timmey9 45:d591d138cdeb 17 extern uint16_t sample_array1[];
timmey9 41:3e0623d81b9a 18
bmazzeo 54:1697dc574b96 19 extern uint16_t static_input_array0[];
bmazzeo 54:1697dc574b96 20 extern uint16_t static_input_array1[];
bmazzeo 54:1697dc574b96 21
bmazzeo 55:2526b3317bc8 22 extern uint16_t static_output_array0[];
bmazzeo 55:2526b3317bc8 23
timmey9 22:523e316cbe70 24 using namespace std;
timmey9 17:2f978f823020 25
emilmont 7:65188f4a8c25 26 int main() {
timmey9 22:523e316cbe70 27 led_blue = 1;
timmey9 35:df40c4566826 28 led_green = 1;
timmey9 18:b17ddeeb1c09 29 led_red = 1;
timmey9 34:44cc9b76a507 30
timmey9 18:b17ddeeb1c09 31 pc.baud(230400);
timmey9 34:44cc9b76a507 32 pc.printf("Starting\r\n");
timmey9 27:8c2b30c855d1 33
bmazzeo 55:2526b3317bc8 34 pdb_init(); // Initalize PDB
bmazzeo 55:2526b3317bc8 35
bmazzeo 54:1697dc574b96 36 dac_init(); // initializes DAC
bmazzeo 54:1697dc574b96 37
timmey9 45:d591d138cdeb 38 adc_init(); // always initialize adc before dma
bmazzeo 53:83a90a47c1fd 39
bmazzeo 53:83a90a47c1fd 40 pc.printf("ADC Initialized\r\n");
bmazzeo 53:83a90a47c1fd 41
timmey9 51:43143a3fc2d7 42 dma_init(); // initializes DMAs
bmazzeo 55:2526b3317bc8 43 dma_reset(); // This clears any DMA triggers that may have gotten things into a different state
timmey9 45:d591d138cdeb 44
bmazzeo 54:1697dc574b96 45
timmey9 46:a015ebf4663b 46 led_green = 1;
timmey9 38:ec3b16c130d7 47
timmey9 40:bd6d8c35e822 48 pc.printf("\r\n\r\n\r\n");
timmey9 37:8bdc71f3e874 49
timmey9 34:44cc9b76a507 50 while(1) {
bmazzeo 54:1697dc574b96 51 //DMA_TCD2_CSR
bmazzeo 54:1697dc574b96 52 //int counter = 0;
bmazzeo 54:1697dc574b96 53 //pc.printf("Sample_array0[1]:%d\r\n",sample_array0[counter]);
bmazzeo 54:1697dc574b96 54 //ADC0_SC1A = 0x0C; //AIEN = 0, DIFF = 0, Channel = AD12 (PTB2)
bmazzeo 54:1697dc574b96 55 //ADC1_SC1A = 0x0E; //AIEN = 0, DIFF = 0, Channel = AD14 (PTB10)
bmazzeo 54:1697dc574b96 56 //while( (ADC0_SC1A&ADC_SC1_COCO_MASK)) {}
bmazzeo 54:1697dc574b96 57 //while( (ADC1_SC1A&ADC_SC1_COCO_MASK)) {}
bmazzeo 54:1697dc574b96 58 //pc.printf("ADC0_RA:%d\r\n", ADC0_RA);
bmazzeo 54:1697dc574b96 59 //pc.printf("ADC1_RA:%d\r\n", ADC1_RA);
bmazzeo 54:1697dc574b96 60
bmazzeo 54:1697dc574b96 61 //for(int i = 0; i < len; i++) pc.printf("A%i: %d\t %d\r\n",i,sample_array0[i],sample_array1[i]);
bmazzeo 54:1697dc574b96 62 //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]);
bmazzeo 54:1697dc574b96 63
bmazzeo 54:1697dc574b96 64 //wait_ms(1000);
bmazzeo 55:2526b3317bc8 65 /* int store_var = DMA_TCD2_CSR;
bmazzeo 54:1697dc574b96 66 if (store_var == 0x220)
bmazzeo 54:1697dc574b96 67 {
bmazzeo 54:1697dc574b96 68 DAC0_DAT0H = 0x0F;
bmazzeo 54:1697dc574b96 69 wait_us(10);
bmazzeo 54:1697dc574b96 70 //DMA_TCD0_CSR = 0x260;
bmazzeo 54:1697dc574b96 71 }
bmazzeo 54:1697dc574b96 72 if (store_var == 0x260)
bmazzeo 54:1697dc574b96 73 {
bmazzeo 54:1697dc574b96 74 DAC0_DAT0H = 0x00;
bmazzeo 54:1697dc574b96 75 wait_us(10);
bmazzeo 54:1697dc574b96 76 }
bmazzeo 54:1697dc574b96 77
bmazzeo 54:1697dc574b96 78 //int store_var = DMA_TCD0_CSR;
bmazzeo 55:2526b3317bc8 79 //pc.printf("DMA0: %x\r\n", DMA_TCD0_CSR);
bmazzeo 55:2526b3317bc8 80 //pc.printf("DMA1: %x\r\n", DMA_TCD1_CSR);
bmazzeo 55:2526b3317bc8 81 //pc.printf("DMA2: %x\r\n", DMA_TCD2_CSR);
bmazzeo 55:2526b3317bc8 82 //pc.printf("DMA3: %x\r\n", DMA_TCD3_CSR);
bmazzeo 55:2526b3317bc8 83
bmazzeo 55:2526b3317bc8 84 //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]);
bmazzeo 55:2526b3317bc8 85 for (int i = 0: i < len; i++)
bmazzeo 55:2526b3317bc8 86 {
bmazzeo 55:2526b3317bc8 87 static_output_array[i] = static_input_array0[i] >> 4;
bmazzeo 55:2526b3317bc8 88 }
bmazzeo 54:1697dc574b96 89
bmazzeo 54:1697dc574b96 90 //wait_us(100);
bmazzeo 55:2526b3317bc8 91 */
bmazzeo 55:2526b3317bc8 92 if(pc.readable() > 0) {
bmazzeo 55:2526b3317bc8 93 char temp = pc.getc();
bmazzeo 55:2526b3317bc8 94
bmazzeo 55:2526b3317bc8 95 switch(temp) {
bmazzeo 55:2526b3317bc8 96 case 'F': // clear the samples
bmazzeo 55:2526b3317bc8 97 case 'f':
bmazzeo 55:2526b3317bc8 98 for(int i = 0; i < len; i++) {sample_array0[i] = 0; sample_array1[i] = 0;}
bmazzeo 55:2526b3317bc8 99 pc.printf("Arrays cleared\r\n");
bmazzeo 55:2526b3317bc8 100 // then display the samples
bmazzeo 55:2526b3317bc8 101 break;
bmazzeo 55:2526b3317bc8 102 case 'S': // display what's been sampled
bmazzeo 55:2526b3317bc8 103 case 's':
bmazzeo 55:2526b3317bc8 104 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);
bmazzeo 55:2526b3317bc8 105 pc.printf("\r\n");
bmazzeo 55:2526b3317bc8 106 break;
bmazzeo 55:2526b3317bc8 107
bmazzeo 55:2526b3317bc8 108 case 'D': // DMA debug
bmazzeo 55:2526b3317bc8 109 case 'd':
bmazzeo 55:2526b3317bc8 110 pc.printf("DMA Status:\r\n");
bmazzeo 55:2526b3317bc8 111 pc.printf("DMA_TCD0_SOFF: %x\r\n", DMA_TCD0_SOFF);
bmazzeo 55:2526b3317bc8 112 pc.printf("DMA_TCD1_SOFF: %x\r\n", DMA_TCD1_SOFF);
bmazzeo 55:2526b3317bc8 113 pc.printf("DMA_TCD0_CITER_ELINKNO: %x\r\n", DMA_TCD0_CITER_ELINKNO);
bmazzeo 55:2526b3317bc8 114 pc.printf("DMA_TCD0_BITER_ELINKNO: %x\r\n", DMA_TCD0_BITER_ELINKNO);
bmazzeo 55:2526b3317bc8 115 pc.printf("DMA_TCD1_CITER_ELINKNO: %x\r\n", DMA_TCD1_CITER_ELINKNO);
bmazzeo 55:2526b3317bc8 116 pc.printf("DMA_TCD1_BITER_ELINKNO: %x\r\n", DMA_TCD1_BITER_ELINKNO);
bmazzeo 55:2526b3317bc8 117 pc.printf("DMA_TCD2_CITER_ELINKNO: %x\r\n", DMA_TCD2_CITER_ELINKNO);
bmazzeo 55:2526b3317bc8 118 pc.printf("DMA_TCD2_BITER_ELINKNO: %x\r\n", DMA_TCD2_BITER_ELINKNO);
bmazzeo 55:2526b3317bc8 119 pc.printf("DMA_TCD3_CITER_ELINKNO: %x\r\n", DMA_TCD3_CITER_ELINKNO);
bmazzeo 55:2526b3317bc8 120 pc.printf("DMA_TCD3_BITER_ELINKNO: %x\r\n", DMA_TCD3_BITER_ELINKNO);
bmazzeo 55:2526b3317bc8 121
bmazzeo 55:2526b3317bc8 122 break;
bmazzeo 54:1697dc574b96 123
bmazzeo 55:2526b3317bc8 124
bmazzeo 55:2526b3317bc8 125 // Programmable Delay Block debug
bmazzeo 55:2526b3317bc8 126 case 'B':
bmazzeo 55:2526b3317bc8 127 case 'b':
bmazzeo 55:2526b3317bc8 128 pc.printf("Started PDB...samples being taken\r\n");
bmazzeo 55:2526b3317bc8 129 pdb_start();
bmazzeo 55:2526b3317bc8 130 break;
bmazzeo 55:2526b3317bc8 131 case 'K':
bmazzeo 55:2526b3317bc8 132 case 'k':
bmazzeo 55:2526b3317bc8 133 pc.printf("Stopped PDB\r\n");
bmazzeo 55:2526b3317bc8 134 pdb_stop();
bmazzeo 55:2526b3317bc8 135 break;
bmazzeo 55:2526b3317bc8 136 case 'V':
bmazzeo 55:2526b3317bc8 137 case 'v':
bmazzeo 55:2526b3317bc8 138 pc.printf("PDB: %i\r\n",PDB0_CNT);
bmazzeo 55:2526b3317bc8 139 break;
bmazzeo 55:2526b3317bc8 140 }
bmazzeo 55:2526b3317bc8 141 }
bmazzeo 55:2526b3317bc8 142
bmazzeo 55:2526b3317bc8 143
timmey9 17:2f978f823020 144 }
timmey9 42:52a92a8d2cc7 145 }