2014.10.09 Появились идеи для третьей версии. Это уже будет не авто-вольт-метр, а ups-вольт-метр: - основная задача -- контроль напряжения аккума в упсе. - раз в секунду выводить текущее напряжение через програмный UART - если на PA0 низкий уровень (опционально), то: - при напряжении аккума ниже 10.02 вольта отключать индикацию, - при восстановлении напряжения -- включать обратно - при напряжении аккума ниже 9.? вольт -- уходить в глубокий даун. - есть идея попробовать упорядочить измерения и вывод: - измерение начинать после вывода первой цифры; - преобразование результата в и запись в буфер индикатора - после вывода четвёртой цифры; - возможно это также поможет избавиться от мельтешения цифр. --- 2014.10.10 Если верить протеусу -- основной цикл проходит за 1.83 мсек, цикл BCD занимает 106 мксек, цикл усреднения 32 мксек, а сам цикл измерений -- порядка 1692 мксек. Никакого смысла в таком частом измерении нет -- вставил sleep в конце цикла, теперь основной цикл начинается после вывода очередной цифры, т.е. каждые 5 мсек. поменял таймер 1 на 0, цикл уменьшил до 4 мсек (250 Гц), прошивка -- 440 байт, из них 10 байт данных, ну и 32 байта в ОЗУ. люблю асм :-) тест в железе прошел успешно. попробую я этот вольтметр всабачить в прикуриватель и всё-таки использовать в машине. а для упс-а сделать отдельный девайс... сегментные резисторы заменил на 200 ом -- разницы в яркости не заметно. ток потреббления не мерял. --- 2014.10.11 калибровал этот вольтметр по китайскому 5-ти разрядному на MCP3421 по итогам: - выкинул стабилитрон на 5.1В по входу -- начиная с 10 вольт он заваливал входное напряжение - исправил установку напряжения питания (опорное) на 4.98 вольта - поставил супресор на входе схемы.