
Использую динамическую индикацию, подсвечиваются цифры которые горят на предыдущем разряде. Из-за чего такое может быть и как это исправить?
Стесняюсь спросить, а схема-то где ?daaar писал(а):Использую динамическую индикацию
Если анодным и катодным ключам хватает быстродействия (например оптронные ключи вносят значимую задержку), и коммутируют они должным образом (при закрытии снимают с электродов остаточный заряд), то дело в отсутствии защитных интервалов (моментах между переключениями разрядов, когда все аноды и катоды отключены/закрыты).daaar писал(а):Из-за чего такое может быть и как это исправить?

Код: Выделить всё
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);
}