arbitrary Signal mit DMA und timer STM32

Gast #5786094
Lesenswert?

Hallo zusammen,


Ich versuche, eine beliebige Wellenform zu erzeugen. Aber es 
funktioniert trotzdem nicht. Ich denke es liegt an der Konfiguration mit 
Cubemx. Ich habe ein Array von 6 für 2 Signalform erstellt, die an 
TIM1-Kanal 1 gesendet werden sollen (TIM1_ARR, TIM1_RCR, TIM1_CCR1).


uint32_t aSRC_Buffer [6] = {2000,1,800,3000,2,200}; /// ARR, RCR, CCR1 x 
2. Aber leider bekomme ich nur 3,3 V an der PIN.


  /* USER CODE BEGIN 2 */
//HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIM_DMABurst_WriteStart(&htim1,TIM_DMABASE_ARR, TIM_DMA_TRIGGER,
(uint32_t *)aSRC_Buffer, TIM_DMABURSTLENGTH_3TRANSFERS);
  /* USER CODE END 2 */

Hinweis: das ist ein neues Thread vom Thema GPIO- Geschwindigkeit. 
Vielen Dank im Voraus.
Angehängte Dateien:
Gast #5786163
Lesenswert?

Samuel schrieb:
> Ich versuche, eine beliebige Wellenform zu erzeugen. Aber es
> funktioniert trotzdem nicht. Ich denke es liegt an der Konfiguration mit
> Cubemx.

Du bist ein echter Optimist: irgendetwas in diesem CubeMX Programm 
zusammenzuklicken und zu hoffen, daß es genau das macht, was man möchte.
Das hätte ich auch gerne, aber ich verstehe nicht einmal, was man da 
alles für komische Sachen auswählen kann.

Jetzt ist bei Dir wohl der Zeitpunkt gekommen, das Referenz-Handbuch zu 
nehmen und zu sehen, wie wo was eingestellt werden muß. Fange an, einen 
Timer überhaupt einmal laufen zu lassen. Danach kannst Du PWM erzeugen 
und versuchen, diese zu variieren. Schritt für Schritt.
Ja, man muß viel lesen und es auch begreifen, aber anders wird das 
nichts!
Gast #5786194
Lesenswert?

m.n. schrieb:

> Du bist ein echter Optimist: irgendetwas in diesem CubeMX Programm
> zusammenzuklicken und zu hoffen, daß es genau das macht, was man möchte.
> Das hätte ich auch gerne, aber ich verstehe nicht einmal, was man da
> alles für komische Sachen auswählen kann.
>  Fange an, einen

also ich habe nicht irgendetwas zusammengekiklickt wie du behauptest. 
sondern Timer mit DMA und nach dem Durchlauf des Timers wwerden die 
neuen Werte an TIM1 gesendet.


> Timer überhaupt einmal laufen zu lassen. Danach kannst Du PWM erzeugen und 
versuchen, diese zu variieren. Schritt für Schritt.

Timer laufenzulassen sowie PWM-Siganl zu erzeugen habe ich schon 
gemacht.

Gruß

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