/* * ExtADC.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "PERIPHERY/ExtADC.h" namespace PERIPHERY { //CONSTRUCTOR ExtADC::ExtADC(): p_channel_00(0), p_channel_01(0), p_channel_02(0), p_channel_03(0), p_channel_04(0), p_channel_05(0), p_channel_06(0), p_channel_07(0), p_channel_08(0), p_channel_09(0), p_channel_10(0), p_channel_11(0), p_channel_12(0), p_channel_13(0), p_channel_14(0), p_channel_15(0), p_channel_16(0), p_channel_17(0), _gpio_setup(&DSP28335::GPIO::ext_adc_start_convertion_setup), _start_convertion(&DSP28335::GPIO::set_ext_adc_start_convertion), _stop_convertion(&DSP28335::GPIO::clear_ext_adc_start_convertion) // {}//CONSTRUCTOR void ExtADC::setup(uint16_t *memzone) { p_channel_00 = memzone + OFFSET_ADC_0_CHANNEL_0; p_channel_01 = memzone + OFFSET_ADC_0_CHANNEL_1; p_channel_02 = memzone + OFFSET_ADC_0_CHANNEL_2; p_channel_03 = memzone + OFFSET_ADC_0_CHANNEL_3; p_channel_04 = memzone + OFFSET_ADC_0_CHANNEL_4; p_channel_05 = memzone + OFFSET_ADC_0_CHANNEL_5; p_channel_06 = memzone + OFFSET_ADC_1_CHANNEL_0; p_channel_07 = memzone + OFFSET_ADC_1_CHANNEL_1;; p_channel_08 = memzone + OFFSET_ADC_1_CHANNEL_2; p_channel_09 = memzone + OFFSET_ADC_1_CHANNEL_3; p_channel_10 = memzone + OFFSET_ADC_1_CHANNEL_4; p_channel_11 = memzone + OFFSET_ADC_1_CHANNEL_5; p_channel_12 = memzone + OFFSET_ADC_2_CHANNEL_0; p_channel_13 = memzone + OFFSET_ADC_2_CHANNEL_1; p_channel_14 = memzone + OFFSET_ADC_2_CHANNEL_2; p_channel_15 = memzone + OFFSET_ADC_2_CHANNEL_3; p_channel_16 = memzone + OFFSET_ADC_2_CHANNEL_4; p_channel_17 = memzone + OFFSET_ADC_2_CHANNEL_5; (*_gpio_setup)(); // }// // void ExtADC::setup(uint16_t *memzone, const ExtADCSetup& setup) { p_channel_00 = memzone + OFFSET_ADC_0_CHANNEL_0; p_channel_01 = memzone + OFFSET_ADC_0_CHANNEL_1; p_channel_02 = memzone + OFFSET_ADC_0_CHANNEL_2; p_channel_03 = memzone + OFFSET_ADC_0_CHANNEL_3; p_channel_04 = memzone + OFFSET_ADC_0_CHANNEL_4; p_channel_05 = memzone + OFFSET_ADC_0_CHANNEL_5; p_channel_06 = memzone + OFFSET_ADC_1_CHANNEL_0; p_channel_07 = memzone + OFFSET_ADC_1_CHANNEL_1;; p_channel_08 = memzone + OFFSET_ADC_1_CHANNEL_2; p_channel_09 = memzone + OFFSET_ADC_1_CHANNEL_3; p_channel_10 = memzone + OFFSET_ADC_1_CHANNEL_4; p_channel_11 = memzone + OFFSET_ADC_1_CHANNEL_5; p_channel_12 = memzone + OFFSET_ADC_2_CHANNEL_0; p_channel_13 = memzone + OFFSET_ADC_2_CHANNEL_1; p_channel_14 = memzone + OFFSET_ADC_2_CHANNEL_2; p_channel_15 = memzone + OFFSET_ADC_2_CHANNEL_3; p_channel_16 = memzone + OFFSET_ADC_2_CHANNEL_4; p_channel_17 = memzone + OFFSET_ADC_2_CHANNEL_5; _gpio_setup = setup.p_gpio_setup; _start_convertion = setup.p_start_convertion; _stop_convertion = setup.p_stop_convertion; (*_gpio_setup)(); // }// // //#pragma CODE_SECTION("ramfuncs"); void ExtADC::read_adc(ADC_RESULT& adc_result) { NOP; NOP; adc_result.channel_00 = *p_channel_00; adc_result.channel_01 = *p_channel_01; adc_result.channel_02 = *p_channel_02; adc_result.channel_03 = *p_channel_03; adc_result.channel_04 = *p_channel_04; adc_result.channel_05 = *p_channel_05; adc_result.channel_06 = *p_channel_06; adc_result.channel_07 = *p_channel_07; adc_result.channel_08 = *p_channel_08; adc_result.channel_09 = *p_channel_09; adc_result.channel_10 = *p_channel_10; adc_result.channel_11 = *p_channel_11; adc_result.channel_12 = *p_channel_12; adc_result.channel_13 = *p_channel_13; adc_result.channel_14 = *p_channel_14; adc_result.channel_15 = *p_channel_15; adc_result.channel_16 = *p_channel_16; adc_result.channel_17 = *p_channel_17; NOP; NOP; NOP; // }// // //#pragma CODE_SECTION("ramfuncs"); void ExtADC::read_adc(uint16_t adc_result[18]) { NOP; NOP; adc_result[0] = *p_channel_00; adc_result[1] = *p_channel_01; adc_result[2] = *p_channel_02; adc_result[3] = *p_channel_03; adc_result[4] = *p_channel_04; adc_result[5] = *p_channel_05; adc_result[6] = *p_channel_06; adc_result[7] = *p_channel_07; adc_result[8] = *p_channel_08; adc_result[9] = *p_channel_09; adc_result[10] = *p_channel_10; adc_result[11] = *p_channel_11; adc_result[12] = *p_channel_12; adc_result[13] = *p_channel_13; adc_result[14] = *p_channel_14; adc_result[15] = *p_channel_15; adc_result[16] = *p_channel_16; adc_result[17] = *p_channel_17; NOP; NOP; NOP; }// // #pragma CODE_SECTION("ramfuncs"); void ExtADC::start_convertion() { (*_start_convertion)(); // }// // #pragma CODE_SECTION("ramfuncs"); void ExtADC::stop_convertion() { (*_stop_convertion)(); // }// // } /* namespace PERIPHERY */