Size: a a a

2019 December 14

ds

denis sosnikov in STM32
Сделал, мерцание лампы продолжается, не помогло
источник

s

stD in STM32
Скиньте весь проект архивом.
источник

AS

Alexey Sidorov in STM32
denis sosnikov
LSD_String()
Нашли же функцию. Теперь залезте внутрь и попробуйте комментировать разные функции там. Задержку например, потом отправку. В общм ищите дальше.
источник

T

Turunchuk in STM32
Я все-таки полагаю, что дело во времени выполнения функции вывода на экран. Она долгая.... Для проверки, попробуйте поиграть уменьшением времени задержки в цикле while. Например, поставьте 750мс, посмотрите на мерцание.
источник

AS

Alexey Sidorov in STM32
Turunchuk
Я все-таки полагаю, что дело во времени выполнения функции вывода на экран. Она долгая.... Для проверки, попробуйте поиграть уменьшением времени задержки в цикле while. Например, поставьте 750мс, посмотрите на мерцание.
Тоже это подозревал. Но это было бы так если она вызывалась в прерывании
источник

s

stD in STM32
Turunchuk
Я все-таки полагаю, что дело во времени выполнения функции вывода на экран. Она долгая.... Для проверки, попробуйте поиграть уменьшением времени задержки в цикле while. Например, поставьте 750мс, посмотрите на мерцание.
Еще раз! Диммер запускаетс в прерывании, ничто не может этому помешать, никакая функция, сколько бы она не выполнялась.
источник

ds

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

s

stD in STM32
Уберите прерывания I2C.
источник

ds

denis sosnikov in STM32
Убрал, это я экспериментировал
источник

s

stD in STM32
Мерцает при каких значения диммера - при горении на полную, на половину, когда тускло светит, или при любых?
источник

ds

denis sosnikov in STM32
На любых
источник

ds

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

s

stD in STM32
Попробуйте оставить во while только вывод на экран...

   char trans_str[64] = {0,};
   unsigned long ic_arr[2] = {0,};

 while (1)
 {
   LCD_Clear();

   ic_arr[0]= compare;// holl value
   ic_arr[1]= 0; // potenciometr value
   snprintf(trans_str, 63, "H=%lu P=%lu\n",ic_arr[0], ic_arr[1]);
   LCD_String(trans_str);
 }
источник

s

stD in STM32
Если не сработает у меня есть ещё пара мыслей.
источник

AS

Alexey Sidorov in STM32
Иногда таймер считает больше чем период сети. Это получается потому что прерывании обрабатывается чуть позже чем планировалось. Уменьшить можете в настройках таймера период. Админ может поможет уменьшить немного. Я сейчас не могу
источник

AS

Alexey Sidorov in STM32
Почему прерывание обрабатывается чуть позже пока не могу сказать
источник

s

stD in STM32
Это была моя вторая мысль, опередил.
источник

AS

Alexey Sidorov in STM32
Квиты
источник

s

stD in STM32
На это показывает как раз вспышки, то есть он не мерцает, а вспыхивает, через равные промежутки.
источник

ds

denis sosnikov in STM32
Значит докладываю, 1 убрал все из while Кроми вывода на экран, не помогло,
2. Умельшил период в таймере с 9000 до 8000 не помогло
источник