Rework polarity switching to get rid of flicker
This commit is contained in:
+4
-4
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user