Jared Baxter
/
Impedance_Fast_Circuitry
Fork of DSP_200kHz by
main.cpp@50:33524a27e08c, 2015-01-31 (annotated)
- Committer:
- timmey9
- Date:
- Sat Jan 31 19:46:00 2015 +0000
- Revision:
- 50:33524a27e08c
- Parent:
- 49:4dcf4717a8bb
- Child:
- 51:43143a3fc2d7
Continuous sampling started by the PCB is working. It is successfully triggering ADC0, ADC1, and the DMA is doing its job for the ADCs and FTM quad decoder.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
donatien | 0:bb128f0e952f | 1 | #include "mbed.h" |
timmey9 | 22:523e316cbe70 | 2 | |
timmey9 | 22:523e316cbe70 | 3 | #include "AngleEncoder.h" |
timmey9 | 39:82dc3daecf32 | 4 | #include "adc.h" |
timmey9 | 45:d591d138cdeb | 5 | #include "pdb.h" |
timmey9 | 48:29f14bc30ba6 | 6 | #include "quad.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 | 18:b17ddeeb1c09 | 13 | |
timmey9 | 22:523e316cbe70 | 14 | AngleEncoder angle_encoder(PTD2, PTD3, PTD1, PTD0, 8, 0, 1000000); // mosi, miso, sclk, cs, bit_width, mode, hz |
timmey9 | 47:54fafe151669 | 15 | DigitalOut quadA(PTC17); |
timmey9 | 47:54fafe151669 | 16 | DigitalOut quadB(PTC16); |
timmey9 | 45:d591d138cdeb | 17 | extern int len; |
timmey9 | 45:d591d138cdeb | 18 | extern uint16_t sample_array0[]; |
timmey9 | 45:d591d138cdeb | 19 | extern uint16_t sample_array1[]; |
timmey9 | 45:d591d138cdeb | 20 | extern uint16_t angle_array[]; |
timmey9 | 41:3e0623d81b9a | 21 | |
timmey9 | 46:a015ebf4663b | 22 | bool switcher = false; |
timmey9 | 39:82dc3daecf32 | 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 | 47:54fafe151669 | 30 | quadA = 0; |
timmey9 | 47:54fafe151669 | 31 | quadB = 0; |
timmey9 | 34:44cc9b76a507 | 32 | |
timmey9 | 18:b17ddeeb1c09 | 33 | pc.baud(230400); |
timmey9 | 34:44cc9b76a507 | 34 | pc.printf("Starting\r\n"); |
timmey9 | 27:8c2b30c855d1 | 35 | |
timmey9 | 45:d591d138cdeb | 36 | quad_init(); |
timmey9 | 45:d591d138cdeb | 37 | adc_init(); // always initialize adc before dma |
timmey9 | 45:d591d138cdeb | 38 | dma_init(); |
timmey9 | 45:d591d138cdeb | 39 | pdb_init(); |
timmey9 | 45:d591d138cdeb | 40 | |
timmey9 | 46:a015ebf4663b | 41 | led_green = 1; |
timmey9 | 38:ec3b16c130d7 | 42 | |
timmey9 | 40:bd6d8c35e822 | 43 | pc.printf("\r\n\r\n\r\n"); |
timmey9 | 37:8bdc71f3e874 | 44 | |
timmey9 | 34:44cc9b76a507 | 45 | while(1) { |
timmey9 | 47:54fafe151669 | 46 | // creates signals for the quad decoder to read for testing |
timmey9 | 47:54fafe151669 | 47 | quadA = !quadA; |
timmey9 | 47:54fafe151669 | 48 | for(int i = 0; i < 65535; i++) asm("nop"); |
timmey9 | 47:54fafe151669 | 49 | quadB = !quadB; |
timmey9 | 47:54fafe151669 | 50 | |
timmey9 | 34:44cc9b76a507 | 51 | if(pc.readable() > 0) { |
timmey9 | 34:44cc9b76a507 | 52 | char temp = pc.getc(); |
timmey9 | 34:44cc9b76a507 | 53 | |
timmey9 | 34:44cc9b76a507 | 54 | switch(temp) { |
timmey9 | 45:d591d138cdeb | 55 | case 'G': |
timmey9 | 45:d591d138cdeb | 56 | case 'g': |
timmey9 | 45:d591d138cdeb | 57 | pc.printf("Quad Cnt: %i\r\n", quad_read()); |
timmey9 | 45:d591d138cdeb | 58 | break; |
timmey9 | 50:33524a27e08c | 59 | /* |
timmey9 | 45:d591d138cdeb | 60 | case 'A': |
timmey9 | 46:a015ebf4663b | 61 | case 'a': // needs debugging |
timmey9 | 45:d591d138cdeb | 62 | adc_start(); |
timmey9 | 45:d591d138cdeb | 63 | for(int i = 0; i < 1500; i++) asm("nop"); |
timmey9 | 45:d591d138cdeb | 64 | adc_stop(); |
timmey9 | 50:33524a27e08c | 65 | // then proceed to 's' to display the array*/ |
timmey9 | 50:33524a27e08c | 66 | case 'F': // clear the samples |
timmey9 | 50:33524a27e08c | 67 | case 'f': |
timmey9 | 50:33524a27e08c | 68 | for(int i = 0; i < len; i++) {sample_array0[i] = 0; sample_array1[i] = 0; angle_array[i] = 0;} |
timmey9 | 50:33524a27e08c | 69 | pc.printf("Arrays cleared\r\n"); |
timmey9 | 50:33524a27e08c | 70 | // then display the samples |
timmey9 | 50:33524a27e08c | 71 | case 'S': // display what's been sampled |
timmey9 | 42:52a92a8d2cc7 | 72 | case 's': |
timmey9 | 46:a015ebf4663b | 73 | 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 | 74 | pc.printf("\r\n"); |
timmey9 | 42:52a92a8d2cc7 | 75 | break; |
timmey9 | 50:33524a27e08c | 76 | /* |
timmey9 | 45:d591d138cdeb | 77 | case 'D': |
timmey9 | 45:d591d138cdeb | 78 | case 'd': |
timmey9 | 47:54fafe151669 | 79 | adc_single_sample(); // trigger ADCs, which trigger DMA |
timmey9 | 47:54fafe151669 | 80 | DMA_TCD2_CSR |= DMA_CSR_START_MASK; // trigger encoder DMA |
timmey9 | 50:33524a27e08c | 81 | break;*/ |
timmey9 | 50:33524a27e08c | 82 | |
timmey9 | 50:33524a27e08c | 83 | |
timmey9 | 50:33524a27e08c | 84 | |
timmey9 | 50:33524a27e08c | 85 | |
timmey9 | 50:33524a27e08c | 86 | |
timmey9 | 50:33524a27e08c | 87 | |
timmey9 | 47:54fafe151669 | 88 | |
timmey9 | 47:54fafe151669 | 89 | // Programmable Delay Block debug |
timmey9 | 45:d591d138cdeb | 90 | case 'B': |
timmey9 | 45:d591d138cdeb | 91 | case 'b': |
timmey9 | 50:33524a27e08c | 92 | pc.printf("Started PCB...samples being taken\r\n"); |
timmey9 | 45:d591d138cdeb | 93 | pdb_start(); |
timmey9 | 45:d591d138cdeb | 94 | break; |
timmey9 | 45:d591d138cdeb | 95 | case 'K': |
timmey9 | 45:d591d138cdeb | 96 | case 'k': |
timmey9 | 50:33524a27e08c | 97 | pc.printf("Stopped PCB\r\n"); |
timmey9 | 45:d591d138cdeb | 98 | pdb_stop(); |
timmey9 | 45:d591d138cdeb | 99 | break; |
timmey9 | 47:54fafe151669 | 100 | case 'V': |
timmey9 | 47:54fafe151669 | 101 | case 'v': |
timmey9 | 47:54fafe151669 | 102 | pc.printf("PDB: %i\r\n",PDB0_CNT); |
timmey9 | 47:54fafe151669 | 103 | break; |
timmey9 | 34:44cc9b76a507 | 104 | } |
timmey9 | 34:44cc9b76a507 | 105 | } |
timmey9 | 17:2f978f823020 | 106 | } |
timmey9 | 42:52a92a8d2cc7 | 107 | } |