Rework polarity switching to get rid of flicker
This commit is contained in:
+4
-4
@@ -137,8 +137,8 @@ int main(void)
|
|||||||
/* Infinite loop */
|
/* Infinite loop */
|
||||||
/* USER CODE BEGIN WHILE */
|
/* USER CODE BEGIN WHILE */
|
||||||
GPIO_PinState state = GPIO_PIN_RESET;
|
GPIO_PinState state = GPIO_PIN_RESET;
|
||||||
const uint32_t polarity_switch_period_ms = 1;
|
const uint32_t polarity_switch_period_iter = 10;
|
||||||
uint32_t next_polarity_switch_ms = HAL_GetTick() + polarity_switch_period_ms;
|
uint32_t next_polarity_switch_iter = polarity_switch_period_iter;
|
||||||
bool polarity = true;
|
bool polarity = true;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
@@ -162,9 +162,9 @@ int main(void)
|
|||||||
HAL_GPIO_WritePin(VDD_LEDL_EN_GPIO_Port, VDD_LEDL_EN_Pin, state);
|
HAL_GPIO_WritePin(VDD_LEDL_EN_GPIO_Port, VDD_LEDL_EN_Pin, state);
|
||||||
|
|
||||||
// Polarity switch (H-bridge control)
|
// 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;
|
polarity = !polarity;
|
||||||
H_bridge_set_direction(polarity);
|
H_bridge_set_direction(polarity);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user