ich lese mit über den adc einen wert über dma in ein Array DMA[100] an die Adresse &DMA[0] ein. wie bekomme ich es hin, dass der der nächste adc wert an der Adresse von &DMA[1] steht? über "memory increment mode" geht dies nämlich nur, wenn man z.B. direkt mehrere Kanäle des ADC liest.
Das geht problemlos ueber "increment", auch wen sie nur 1 ADC Kanal habe :
1 | DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_CDR_Address; |
2 | DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_Dual; |
3 | DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; |
4 | DMA_InitStructure.DMA_BufferSize = 24; |
5 | DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; |
6 | DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; |
7 | DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; |
8 | DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; |
9 | DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; |
10 | DMA_InitStructure.DMA_Priority = DMA_Priority_High; |
11 | DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; |
12 | DMA_Init(DMA1_Channel1, &DMA_InitStructure); |
HIer werden 24 Werten in array gespeichert, anzahl ADC-Kanalen kan 1 bis x sein. Bei 1 Kanal werden 24 (neue) Messwerte von das gleiche ADC Kanal gespeichert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.