Size: a a a

2019 December 14

s

stD in STM32
Alexey Sidorov
раскоменнтируйте и попробуйте закомментировать только ЛСД_клеар и ЛСД_Стринг, потом раскоментируйте очистку
Прерывание в любом случае должно вырвать программу из этих функции. Может приоритеты...
источник

ds

denis sosnikov in STM32
Я прерывания все убрал. Остались только диммера
источник

AS

Alexey Sidorov in STM32
stD
Прерывание в любом случае должно вырвать программу из этих функции. Может приоритеты...
Приоритеты были бы следующим вопросом )
источник

ds

denis sosnikov in STM32
источник

s

stD in STM32
HAL_Delay() использует SysTick, у него приоритет 0. Поставьте приоритет у EXTI равный 1.
источник

ds

denis sosnikov in STM32
Не подскажете где это можно сделать?
источник

s

stD in STM32
источник

AS

Alexey Sidorov in STM32
denis sosnikov
Ок, понял, сейчас сделаю, проверю что сбивает
Что нибудь прояснилось?
источник

ds

denis sosnikov in STM32
источник

ds

denis sosnikov in STM32
Exti  приоритет не помогло
источник

ds

denis sosnikov in STM32
Clear комментировал, тоже не спасло
источник

ds

denis sosnikov in STM32
Нашел, вывод на экран закоментировал и Димер хорошо заработал
источник

s

stD in STM32
Какую именно функцию закоментировали?
источник

ds

denis sosnikov in STM32
LSD_String()
источник

s

stD in STM32
Она в любом случае не должна мешать. Что-то странное происходит.
источник

T

Turunchuk in STM32
Похоже, эта функция недетерининирована по времени, т.е. выполняется каждый раз за разное время, соответственно функция диммера стартует не строго периодично, рассинхрон, отсюда и мерцание. Похоже на правду?
источник

s

stD in STM32
Нет, функция диммера стартует из прерывания.
источник

s

stD in STM32
Вот в чём непонятка.
источник

s

stD in STM32
Запуск диммера...

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
       HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
}

Всё, там больше ничего нет.

Библиотека LCD...

https://github.com/stDstm/Example_STM32F103/blob/master/Lcd2004/Src/lcd.c
источник

s

stD in STM32
denis sosnikov
LSD_String()
Попробуйте вот что сделать, перенесите макрос __HAL_SET_COMPARE() в обработчик нажатия кнопок.
источник