array size macro

This commit is contained in:
Rene Hopf
2016-09-12 22:24:12 +02:00
parent e205f4bbca
commit 154e2e7568
2 changed files with 11 additions and 3 deletions
+8
View File
@@ -39,6 +39,14 @@ extern "C" {
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
#define STATIC_ASSERT(x) _Static_assert(x, #x)
#define STRINGIFY_(x) #x
#define STRINGIFY(x) STRINGIFY_(x)
//TODO: change type to typeof()
#define RISING_EDGE(sig)\
({static float __old_val__ = 0.0; uint8_t ret = (sig) > __old_val__; __old_val__ = (sig); ret;})
+3 -3
View File
@@ -342,7 +342,7 @@ void setup_adc(){
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADCConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = sizeof(ADCConvertedValue)/sizeof(ADCConvertedValue[0]);
DMA_InitStructure.DMA_BufferSize = ARRAY_SIZE(ADCConvertedValue);
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
@@ -567,11 +567,11 @@ int main(void)
int adcbufferpos;
uint32_t cur_sum = 0;
//next received packet will be written to bufferpos
adcbufferpos = sizeof(ADCConvertedValue)/sizeof(ADCConvertedValue[0]) - DMA_GetCurrDataCounter(DMA1_Channel1);
adcbufferpos = ARRAY_SIZE(ADCConvertedValue) - DMA_GetCurrDataCounter(DMA1_Channel1);
//bufferpos-1 .. bufferpos-1-samples
int samples = 30;
for(int i = 0; i < samples; i++){
if(adcbufferpos + i >= sizeof(ADCConvertedValue)/sizeof(ADCConvertedValue[0])){
if(adcbufferpos + i >= ARRAY_SIZE(ADCConvertedValue)){
adcbufferpos = 0;
}
cur_sum += ADCConvertedValue[adcbufferpos+i];