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);
habe ein ähnliches Problem, daher würde mich eine Lösung ebenfalls interessieren.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.