ADC1 TIM1 DMA HAL H7

#7097117
Lesenswert?

Könnte jemand bitte kurz in mein bsp. schauen.
Es handelt sich um ein einfaches Cube Projekt welches beim Nucleo-H7 bei 
Timer1 Überlauf den ADC triggern sollte und anschliessend per DMA ins 
Memory.

Leider funktioniert weder der timer noch der ADC/DMA (wenn manuell 
gestartet) :(
Angehängte Dateien:
#7097505
Lesenswert?

timer läuft nun, bez des ADC+DMA habe ich das problem das initial nur 
eine konvertierung ausgeführt wird:

  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
  hadc1.Init.Resolution = ADC_RESOLUTION_16B;
  hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc1.Init.LowPowerAutoWait = DISABLE;
  hadc1.Init.ContinuousConvMode = DISABLE;
  hadc1.Init.NbrOfConversion = 1;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_TRGO;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
  hadc1.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DMA_CIRCULAR;
  hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
  hadc1.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE;
  hadc1.Init.OversamplingMode = DISABLE;
  hadc1.Init.DMAContinuousRequests = ENABLE; // diese Zeile manuell


Ziel: bei jedem T1_TRGO soll eine ADC Wandlung + DMA Transfer ausgeführt 
werden (Daten an Zieladdr per DMA überschreiben). Ich habe die 
Vermutung, dass dieser DMA transfer aktuell nicht ausgeführt wird, wenn 
der vorgehende transfer noch nicht quitiert ist.

Wie kann ich dieses Ziel erreichen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren