STM32f4 Full Timer Reset

Gast #4533818
Moin,

möchte mit der Output Compare Funktion von Timer1 im Toggle Modus 
Phasenverschobene Rechteckimpulse erzeugen. Diese sollen auf 4 Kanälen 
ausgegeben werden. Zu beginn sollen dabei alle 4 Ausgänge die gleiche 
Phase besitzen.

Durch die Toggle Funktion besitzen alle Impulse die gleiche Pulsbreite, 
es müssen aber 2 Timerdurchläufe verwendet werden, um einen Takt zu 
generieren.

Mein Problem ist, dass obwohl der Timer deinitilaisiert wurde und ich 
alle Ausgänge mit "Reset" überschreibe, ich wieder in einen 
undefinierten Zustand gelange, wenn ich die Timer wieder starte. 
Entwerder sind die Ausgänge in Phase, oder um 180 Grad Phasenverschoben. 
Dies lässt sich natürlich leicht durch das Toggle erklären.

Meine Frage ist jetzt, was muss ich tun, um die Eigenschaften des Timers 
komplett zurückzusetzten und in einen definierten Zustand zu gelangen.

Vielen Dank für eure Hilfe!


HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_1);
    HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_2);
    HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_3);
    HAL_TIM_OC_Stop(&htim1, TIM_CHANNEL_4);

    HAL_TIM_OC_MspDeInit(&htim1);
    HAL_TIM_OC_DeInit(&htim1);

    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, RESET);
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, RESET);
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_13, RESET);
    HAL_GPIO_WritePin(GPIOE, GPIO_PIN_14, RESET);
    HAL_Delay(1000);
    HAL_TIM_OC_MspInit(&htim1);
    HAL_TIM_OC_Init(&htim1);
    HAL_Delay(1000);
    HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_1);
    HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_2);
    HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_3);
    HAL_TIM_OC_Start(&htim1, TIM_CHANNEL_4);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.