uk8amk писал(а):
При таком подходе индикация будет пропадать на 750мс - время преобразования температуры. Чтобы избавится от этого недостатка вам придется расковырять встроенную в CVAVR библиотеку и функцию измерения разбить на части(маленькие функции):
1)отключение прерываний, запуск измерения, включение прерываний
2)подождать 750мс
3)откл. прерываний, считвание показаний, вкл. прерываний
Добавил это в библиотеку, температура измеряется, только заметно подергивание цифр. Как с этим бороться?
Опыт растет прямо пропорционально выведенному из строя оборудованию...
1. Полностью перейти на статику
2. Максимально понизить частоту регенерации экрана и увеличить интервал опроса датчика. Температура - вещь очень инерционна, за 5-10 сек никуда не убежит:)
3. Вместо программного метода
void hc164_wr(unsigned char dig1, unsigned char dig2){ //подпрограмма вывода данных в регистр
попытаться использовать модуль SPI для связи с регистрами. И задействовать его собственное прерывание в котором будет выводится следующий байт. Поверьте, работает намного быстрее чем ручное ногодрыганье.
4. Дальше ковырять библиотеку, точнее теперь уже написать свою 1wire. Насколько я помню, при опросе датчика важно точно выдержать интервал от старта бита до его считывания. Но пауза между битами может быть достаточно большой(до длительности W1 RESET). Вот между этими битами и как раз можно разрешать прерывания если они небольшие.
5. Попытаться писать код лучше, например:
Главная программа(ф-ция void tem(void))
d2=temp/10;
d3=temp%10;
d4=23;
И в обработчике первого таймера
digit_out[1]=d2;
digit_out[2]=d3;
digit_out[3]=d4;
Что отобразится на экране если прерывание произойдет например между этими двумя строчками:
d2=temp/10;
d3=temp%10;
?
... по "партизанскому молчанию" становится ясно, что дальше рисования схем в Протеусе, дело не идет и слово отладка считается "ругательством".....
КАШАК зайдите в меню Протеуса Debug и выберите Start/Restart Debugging пока не разберетесь с отладкой - в Ваших программах всегда будет куча "неожиданностей" .
Просто я занят был, учеба А схема уже давно на макетке собрана и там тестируется... А в протеусе после переделки (добавил транзисторы и аноды в параллель включил) схема работать не хочет... Вот проект протеуса: