Страница 1 из 1

"Фантомные" эффекты при динамической индикации ГРИ

Добавлено: Чт мар 07, 2019 21:47:20
daaar
Имею вот такую картину:Изображение
Использую динамическую индикацию, подсвечиваются цифры которые горят на предыдущем разряде. Из-за чего такое может быть и как это исправить?

Re: "Фантомные" эффекты при динамической индикации ГРИ

Добавлено: Чт мар 07, 2019 22:18:43
sergeisams
daaar писал(а):Использую динамическую индикацию
Стесняюсь спросить, а схема-то где ?

Re: "Фантомные" эффекты при динамической индикации ГРИ

Добавлено: Чт мар 07, 2019 22:41:26
korob
daaar писал(а):Из-за чего такое может быть и как это исправить?
Если анодным и катодным ключам хватает быстродействия (например оптронные ключи вносят значимую задержку), и коммутируют они должным образом (при закрытии снимают с электродов остаточный заряд), то дело в отсутствии защитных интервалов (моментах между переключениями разрядов, когда все аноды и катоды отключены/закрыты).

Re: "Фантомные" эффекты при динамической индикации ГРИ

Добавлено: Пт мар 08, 2019 08:42:17
daaar
[uquote="sergeisams",url="/forum/viewtopic.php?p=3585349#p3585349"]Стесняюсь спросить, а схема-то где ?[/uquote]
Схема управления выполнена вот как тут:
СпойлерИзображение
Добавлено after 3 minutes 19 seconds:
[uquote="korob",url="/forum/viewtopic.php?p=3585354#p3585354"]то дело в отсутствии защитных интервалов (моментах между переключениями разрядов, когда все аноды и катоды отключены/закрыты)[/uquote]
Вот такой код занимается индикацией:
Спойлер

Код: Выделить всё

while (1) 
    {
  SetBit(DIGIT1_PORT, DIGIT1_bit);
  _delay_us(Ton);
  setNumber(0);
  ClearBit(DIGIT1_PORT, DIGIT1_bit);
  _delay_us(Toff);
  
  SetBit(DIGIT2_PORT, DIGIT2_bit);
  _delay_us(Ton);
  setNumber(1);
  ClearBit(DIGIT2_PORT, DIGIT2_bit);
  _delay_us(Toff);
  
  SetBit(DIGIT3_PORT, DIGIT3_bit);
  _delay_us(Ton);
  setNumber(2);
  ClearBit(DIGIT3_PORT, DIGIT3_bit);
  _delay_us(Toff);
  
  SetBit(DIGIT4_PORT, DIGIT4_bit);
  _delay_us(Ton);
  setNumber(3);
  ClearBit(DIGIT4_PORT, DIGIT4_bit);
  _delay_us(Toff);
  
  SetBit(DIGIT5_PORT, DIGIT5_bit);
  _delay_us(Ton);
  setNumber(4);
  ClearBit(DIGIT5_PORT, DIGIT5_bit);
  _delay_us(Toff);
  
  SetBit(DIGIT6_PORT, DIGIT6_bit);
  _delay_us(Ton);
  setNumber(5);
  ClearBit(DIGIT6_PORT, DIGIT6_bit);
  _delay_us(Toff);
    }
Ton и Tof пара милисекунд

Добавлено after 1 hour 35 minutes 21 second:
Вроде бы победил этот эффект, добавил пауз