Guten Abend,
ich möchte gerade 13 ADC Kanäle laufend in die DMA schaufeln.
Mit 4 Kanälen hat dies ausgezeichnet funktioniert.
Bei 13 Kanälen habe ich bei gleichbleibender Spannung an den ADC Pin in
meinem ADC Array immer verschiedene Werte.
Sollte es nicht so sein das die Wandlungen im Hintergrund laufen und ich
in der main zu jeder Zeit auf das Array zugreifen kann?
Ich habe das Projekt mit den 13 Kanälen gleich wie auch das Projekt mit
den 4 kanälen mit cubemx erstellt.
Die Zyklen der Wanlungszeit haben ich 13,5Zyklen eingestellt.
vor der main loop
1 | HAL_ADCEx_Calibration_Start(&hadc1);
|
2 | HAL_Delay(500);
|
3 | HAL_ADC_Start_DMA(&hadc1,(uint32_t *) &adcvalue, 4);
|
4 | HAL_ADC_Start(&hadc1);
|
in der main
1 | printf("A0=%05i A1=%05i A2=%05i A3=%05i A4=%05i A5=%05i A6=%05i A7=%05i A8=%05i A9=%05i A10=%05i A11=%05i A12=%05i \r\n", adcvalue[0],
|
2 | adcvalue[1],
|
3 | adcvalue[2],
|
4 | adcvalue[3],
|
5 | adcvalue[4],
|
6 | adcvalue[5],
|
7 | adcvalue[6],
|
8 | adcvalue[7],
|
9 | adcvalue[8],
|
10 | adcvalue[9],
|
11 | adcvalue[10],
|
12 | adcvalue[11],
|
13 | adcvalue[12]);
|
Was mache ich falsch?