Rework polarity switching to get rid of flicker

This commit is contained in:
Jan Mrna
2026-05-16 19:13:26 +02:00
parent 44560253f8
commit 1b40078c67
+4 -4
View File
@@ -137,8 +137,8 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
GPIO_PinState state = GPIO_PIN_RESET;
const uint32_t polarity_switch_period_ms = 1;
uint32_t next_polarity_switch_ms = HAL_GetTick() + polarity_switch_period_ms;
const uint32_t polarity_switch_period_iter = 10;
uint32_t next_polarity_switch_iter = polarity_switch_period_iter;
bool polarity = true;
while (1)
{
@@ -162,9 +162,9 @@ int main(void)
HAL_GPIO_WritePin(VDD_LEDL_EN_GPIO_Port, VDD_LEDL_EN_Pin, state);
// Polarity switch (H-bridge control)
if (HAL_GetTick() > next_polarity_switch_ms)
if (--next_polarity_switch_iter == 0)
{
next_polarity_switch_ms = HAL_GetTick() + polarity_switch_period_ms;
next_polarity_switch_iter = polarity_switch_period_iter;
polarity = !polarity;
H_bridge_set_direction(polarity);
}