From 8bd969e5da8d3831ad290c36c99988cb27ba06ed Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Tue, 24 Jan 2023 16:31:12 +0300 Subject: [PATCH] Fixed ADC (bug in index of ADC2 + DAC works as constant val) --- F3:F303/ADC/Makefile | 2 +- F3:F303/ADC/adc.bin | Bin 7036 -> 6732 bytes F3:F303/ADC/adc.c | 8 +++++++- F3:F303/ADC/version.inc | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/F3:F303/ADC/Makefile b/F3:F303/ADC/Makefile index 9e20e3f..7d73347 100644 --- a/F3:F303/ADC/Makefile +++ b/F3:F303/ADC/Makefile @@ -1,5 +1,5 @@ BINARY := adc -PREFIX=/opt/ARM10/bin/arm-none-eabi +#PREFIX=/opt/ARM10/bin/arm-none-eabi # MCU code MCU := F303xb # change this linking script depending on particular MCU model, diff --git a/F3:F303/ADC/adc.bin b/F3:F303/ADC/adc.bin index 4f9f286d9fa404fc5bf35cd24d765003e91863b7..f94dcde973bea12edd1c8c0de435f94981073137 100755 GIT binary patch literal 6732 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μ&+Jr==rqSi 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 |= RCC_APB1ENR_DAC1EN; /* (1) */ + // DAC simple throw out constant value: output buffer disable, DAC ch1 enable + DAC->CR = DAC_CR_BOFF1 | DAC_CR_EN1; + // starting value: 1v + DAC1->DHR12R1 = 1241; +#if 0 DAC->CR |= DAC_CR_WAVE1_1 | DAC_CR_MAMP1_3 | DAC_CR_MAMP1_1 | DAC_CR_MAMP1_0 | DAC_CR_BOFF1 | DAC_CR_TEN1 | DAC_CR_EN1; /* (2) */ @@ -117,6 +122,7 @@ void adc_setup(){ TIM6->PSC = 1; /* (3) */ TIM6->ARR = (uint16_t)24; /* (4) */ TIM6->CR1 |= TIM_CR1_CEN; /* (5) */ +#endif } /** @@ -125,12 +131,12 @@ void adc_setup(){ * @return */ uint16_t getADCval(int nch){ - int addr = nch; register uint16_t temp; #define PIX_SORT(a,b) { if ((a)>(b)) PIX_SWAP((a),(b)); } #define PIX_SWAP(a,b) { temp=(a);(a)=(b);(b)=temp; } uint16_t p[9]; int adval = (nch >= NUMBER_OF_ADC1_CHANNELS) ? NUMBER_OF_ADC2_CHANNELS : NUMBER_OF_ADC1_CHANNELS; + int addr = (nch >= NUMBER_OF_ADC1_CHANNELS) ? nch - NUMBER_OF_ADC2_CHANNELS + ADC2START: nch; for(int i = 0; i < 9; ++i, addr += adval) // first we should prepare array for optmed p[i] = ADC_array[addr]; PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ; diff --git a/F3:F303/ADC/version.inc b/F3:F303/ADC/version.inc index f4257ec..c0f7177 100644 --- a/F3:F303/ADC/version.inc +++ b/F3:F303/ADC/version.inc @@ -1,2 +1,2 @@ -#define BUILD_NUMBER "10" -#define BUILD_DATE "2023-01-23" +#define BUILD_NUMBER "12" +#define BUILD_DATE "2023-01-24"