Jared Baxter / Mbed 2 deprecated Impedance_Fast_Circuitry_print_V_I

Dependencies:   mbed-dsp mbed

Fork of Impedance_Fast_Circuitry by Jared Baxter

Committer:
timmey9
Date:
Sat Jan 31 08:13:33 2015 +0000
Revision:
46:a015ebf4663b
Parent:
45:d591d138cdeb
Child:
47:54fafe151669
DMA is reading from FTM2_CNT.  Still need to get PDB triggering the DMAs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
timmey9 20:f533b3c9296f 1 // Server code
donatien 0:bb128f0e952f 2 #include "mbed.h"
timmey9 22:523e316cbe70 3
timmey9 22:523e316cbe70 4 #include "AngleEncoder.h"
timmey9 39:82dc3daecf32 5 #include "adc.h"
timmey9 45:d591d138cdeb 6 #include "pdb.h"
timmey9 45:d591d138cdeb 7 #include "quadrature.h"
timmey9 22:523e316cbe70 8
timmey9 22:523e316cbe70 9 // for debug purposes
timmey9 18:b17ddeeb1c09 10 Serial pc(USBTX, USBRX);
timmey9 18:b17ddeeb1c09 11 DigitalOut led_red(LED_RED);
timmey9 18:b17ddeeb1c09 12 DigitalOut led_green(LED_GREEN);
timmey9 18:b17ddeeb1c09 13 DigitalOut led_blue(LED_BLUE);
timmey9 45:d591d138cdeb 14 //DigitalOut test1(PTB19);
timmey9 45:d591d138cdeb 15 //DigitalOut test2(PTB18);
timmey9 18:b17ddeeb1c09 16
timmey9 22:523e316cbe70 17 AngleEncoder angle_encoder(PTD2, PTD3, PTD1, PTD0, 8, 0, 1000000); // mosi, miso, sclk, cs, bit_width, mode, hz
timmey9 22:523e316cbe70 18
timmey9 45:d591d138cdeb 19 extern int len;
timmey9 45:d591d138cdeb 20 extern uint16_t sample_array0[];
timmey9 45:d591d138cdeb 21 extern uint16_t sample_array1[];
timmey9 45:d591d138cdeb 22 extern uint16_t angle_array[];
timmey9 41:3e0623d81b9a 23
timmey9 46:a015ebf4663b 24 bool switcher = false;
timmey9 22:523e316cbe70 25 // Declaration of functions
timmey9 39:82dc3daecf32 26
timmey9 22:523e316cbe70 27 using namespace std;
timmey9 17:2f978f823020 28
emilmont 7:65188f4a8c25 29 int main() {
timmey9 22:523e316cbe70 30 led_blue = 1;
timmey9 35:df40c4566826 31 led_green = 1;
timmey9 18:b17ddeeb1c09 32 led_red = 1;
timmey9 34:44cc9b76a507 33
timmey9 18:b17ddeeb1c09 34 pc.baud(230400);
timmey9 34:44cc9b76a507 35 pc.printf("Starting\r\n");
timmey9 27:8c2b30c855d1 36
timmey9 45:d591d138cdeb 37 quad_init();
timmey9 45:d591d138cdeb 38 adc_init(); // always initialize adc before dma
timmey9 45:d591d138cdeb 39 dma_init();
timmey9 45:d591d138cdeb 40 pdb_init();
timmey9 45:d591d138cdeb 41
timmey9 46:a015ebf4663b 42 led_green = 1;
timmey9 38:ec3b16c130d7 43
timmey9 40:bd6d8c35e822 44 pc.printf("\r\n\r\n\r\n");
timmey9 37:8bdc71f3e874 45
timmey9 34:44cc9b76a507 46 while(1) {
timmey9 46:a015ebf4663b 47 pc.printf("PDB0: %i\r",switcher);
timmey9 34:44cc9b76a507 48 if(pc.readable() > 0) {
timmey9 34:44cc9b76a507 49 char temp = pc.getc();
timmey9 34:44cc9b76a507 50
timmey9 34:44cc9b76a507 51 switch(temp) {
timmey9 45:d591d138cdeb 52 case 'G':
timmey9 45:d591d138cdeb 53 case 'g':
timmey9 45:d591d138cdeb 54 pc.printf("Quad Cnt: %i\r\n", quad_read());
timmey9 45:d591d138cdeb 55 break;
timmey9 45:d591d138cdeb 56 case 'A':
timmey9 46:a015ebf4663b 57 case 'a': // needs debugging
timmey9 45:d591d138cdeb 58 adc_start();
timmey9 45:d591d138cdeb 59 for(int i = 0; i < 1500; i++) asm("nop");
timmey9 45:d591d138cdeb 60 adc_stop();
timmey9 42:52a92a8d2cc7 61 // then proceed to 's' to display the array
timmey9 45:d591d138cdeb 62 case 'S':
timmey9 42:52a92a8d2cc7 63 case 's':
timmey9 46:a015ebf4663b 64 for(int i = 0; i < len; i++) pc.printf("%i: %f\t %f\t %i\r\n",i,sample_array0[i]*3.3/65535,sample_array1[i]*3.3/65535, angle_array[i]);
timmey9 42:52a92a8d2cc7 65 pc.printf("\r\n");
timmey9 42:52a92a8d2cc7 66 break;
timmey9 45:d591d138cdeb 67 case 'D':
timmey9 45:d591d138cdeb 68 case 'd':
timmey9 45:d591d138cdeb 69 adc_single_sample();
timmey9 46:a015ebf4663b 70 DMA_TCD2_CSR |= DMA_CSR_START_MASK;
timmey9 45:d591d138cdeb 71 break;
timmey9 45:d591d138cdeb 72 case 'F':
timmey9 42:52a92a8d2cc7 73 case 'f':
timmey9 45:d591d138cdeb 74 for(int i = 0; i < len; i++) {sample_array0[i] = 0; sample_array1[i] = 0; angle_array[i] = 0;}
timmey9 42:52a92a8d2cc7 75 pc.printf("Arrays cleared\r\n");
timmey9 40:bd6d8c35e822 76 break;
timmey9 45:d591d138cdeb 77 case 'R':
timmey9 43:c593a8b9688f 78 case 'r':
timmey9 43:c593a8b9688f 79 pc.printf("Quadrature: %i%i \r\n", (HW_GPIO_PDIR_RD(HW_PORTC)>>1)&0x01, HW_GPIO_PDIR_RD(HW_PORTC)&0x01);
timmey9 45:d591d138cdeb 80 case 'B':
timmey9 45:d591d138cdeb 81 case 'b':
timmey9 45:d591d138cdeb 82 pdb_start();
timmey9 45:d591d138cdeb 83 break;
timmey9 45:d591d138cdeb 84 case 'K':
timmey9 45:d591d138cdeb 85 case 'k':
timmey9 45:d591d138cdeb 86 pdb_stop();
timmey9 45:d591d138cdeb 87 break;
timmey9 34:44cc9b76a507 88 }
timmey9 34:44cc9b76a507 89 }
timmey9 17:2f978f823020 90 }
timmey9 42:52a92a8d2cc7 91 }