arbitrary Signal mit DMA und timer STM32

Gast #5786094
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
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.