Forum: Mikrocontroller und Digitale Elektronik ADC1 TIM1 DMA HAL H7


von ST M. (stm321)


Angehängte Dateien:

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) :(

von ST M. (stm321)


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?

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
Noch kein Account? Hier anmelden.