Jared Baxter
/
Impedance_Fast_Circuitry
Impedance Fast Circuitry Software
Fork of DSP_200kHz by
Diff: main.cpp
- Revision:
- 67:ec0c58490ce6
- Parent:
- 66:72c5c24e532c
- Child:
- 68:e5031c18fefb
--- a/main.cpp Fri Feb 26 20:02:36 2016 +0000 +++ b/main.cpp Fri Feb 26 22:53:32 2016 +0000 @@ -5,6 +5,10 @@ #include "DMA_sampling/dac.h" #include "DMA_sampling/pdb.h" +// DSP +#include "dsp.h" + + // for debug purposes Serial pc(USBTX, USBRX); DigitalOut led_red(LED_RED); @@ -17,19 +21,24 @@ // 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; - +// To set up FIR filtering +#define TOTAL_TAPS 8 +#define STATE_LENGTH 71 +#define BUFFER_LENGTH 64 +uint16_t numTaps = TOTAL_TAPS; +float State[STATE_LENGTH]= {0}; +float Coeffs[TOTAL_TAPS] = {0.25, 0, 0, 0, 0, 0, 0, 0}; +arm_fir_instance_f32 S = {numTaps, State, Coeffs}; + +float filter_input_array[BUFFER_LENGTH] = {0}; +float filter_output_array[BUFFER_LENGTH] = {0}; + + int main() { led_blue = 1; led_green = 1; @@ -44,7 +53,7 @@ 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 - + pc.printf("Buffer Size: %i\r\n", len); led_green = 1; @@ -91,7 +100,30 @@ status_1 = 1; for(int i = 0; i < len; i++) { - static_output_array0[i] = static_input_array0[i] >> 4; + //static_output_array0[i] = static_input_array0[i] >> 4; + //filter_input_array[i] = (float) (((int) static_input_array0[i]) - 0x8000); + filter_input_array[i] = (float) static_input_array0[i]; + } + + //filter_input_array[0] = (float) static_input_array0[0]; + + //arm_fir_f32(&S, filter_input_array, filter_output_array, len); + + for(int i = 0; i < len; i++) + { + //static_output_array0[i] = static_input_array0[i] >> 4; + //filter_output_array[i] = 0.25 * filter_input_array[i]; + filter_output_array[i] = 0.0625 * filter_input_array[i]; + } + + + for(int i = 0; i < len; i++) + { + //static_output_array0[i] = static_input_array0[i] >> 4; + //static_output_array0[i] = (uint16_t) (( (int) filter_output_array[i] ) + 0x800); + static_output_array0[i] = (uint16_t) filter_output_array[i]; + //static_output_array0[i] = (uint16_t) filter_input_array[i]; + //static_output_array0[i] = static_input_array0[i] >> 4; } status_1 = 0; }