Цитата(GoodNews @ Mar 15 2010, 16:36)

Скорее всего ошибся с установкой битов на порт. Но где?
Думаю, ваша ошибка здесь:
Код
if (i > sizeof(digit)) i = 0;
sizeof(digit) == 4. Значит i у вас меняется от 0 до 4 и на последнем проходе пишет мусор.
И еще - количество элементов массива лучше привыкнуть вычислять как sizeof(digit)/sizeof(digit[0]). Это значение не зависит от размера элемента массива.