http://www.forum.getchip.net/ |
|
Термометр с 7-сегментным индикатором http://www.forum.getchip.net/viewtopic.php?f=16&t=134 |
Страница 1 из 2 |
Автор: | SVN [ 20 ноя 2011, 15:47 ] |
Заголовок сообщения: | Термометр с 7-сегментным индикатором |
Решил изучить работу МК с 7-сегментном индикатором. Сделал термометр на 7-сегментном индикаторе. Проверил в железе. Но качество динамической индикации не понравилось. Видны подмигивания при измерении температуры. Изменения частоты в небольших пределах, полностью не убрало этот эффект. Думаю, что данный алгоритм необходимо править, но где? Что-то не соображу. Перепробовал все решения, что удалось придумать, но без успешно. Подскажите, что изменить в данном алгоритме для стабильной работы динамической индикации в данном устройстве. ![]() Скачиваний: 814 Прошу прощения не сразу заметил ошибку в заголовке темы. Хотел написать «Термометр с 7-сегментным индикатором». Прошу администратора поправить заголовок. Спасибо. |
Автор: | GetChiper [ 20 ноя 2011, 18:15 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
На первый взгляд просто нужно увеличить частоту обновления семисегментного индикатора. Это делается в прерывании по переполнению Timer0 sshot-1.png [ 9.2 КБ | Просмотров: 16994 ] Просто попробуй поменять пределитель с 64 на 8. |
Автор: | SVN [ 20 ноя 2011, 19:23 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Как уже писал, пробовал именно эти варианты а также корректировал ТСNT0, как Вы уже заметили, но не помогло. Подмаргивание (изменение яркости сегментов) происходит в тот период когда работает прерывание по таймеру 1 (измерение температуры). До прерывания по таймеру 1 и после, индикация работает стабильно. Вероятно это потому что много времени уходит при обращении к датчику. |
Автор: | GetChiper [ 21 ноя 2011, 01:52 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Тут сложно что то подправить. При входе в прерывание по таймеру1 запрещаются все остальные прерывания. Можно, конечно, их разрешить в теле обработчика прерывания от таймера1, но для корректной работы 1Wire необходимы точные отсчеты времени, а это будет невозможно реализовать если будут разрешены прерывания. Единственно что можно посоветовать в этом случае - это разрешить прерывания в обработчике прерывания от таймера1, но запрещать их на участках, где идет обмен данными по интерфейсу. |
Автор: | SVN [ 21 ноя 2011, 08:05 ] | ||
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором | ||
Спасибо за помощь. Остановился на таком варианте. Опрос датчика раз в 8 сек и убран один таймер. Если не приглядываться то небольшое изменение в яркости вовремя опроса датчика почти незаметно.
|
Автор: | GetChiper [ 21 ноя 2011, 18:30 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Тоже хороший вариант - зачем его часто опрашивать. |
Автор: | anatoliy [ 21 ноя 2011, 20:54 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Алгоритм простой Зажгли сигмент ждем паузу (расчёт значение паузы такой что-бы частота регенерации всего индикатора была не мение 50герц). По завершении паузы тушим текущий зажигаем следующий и опять пауза. Если тупо зажигать и тушить сегменты без соблюдения временных интервалов. То будем иметь проблемы. В будет менятся яркость и подсвечиваться соседние сегменты. Не забывайте что зрение штука инерционная. |
Автор: | SVN [ 21 ноя 2011, 21:36 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Спасибо Анатолий за совет. На грабли уже наступил, ![]() |
Автор: | SVN [ 22 ноя 2011, 19:03 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
Если не обращаться к датчику, то индикация работает идеально. В общем в данном девайсе сделать полностью без подмигивания при опросе датчика не получилось, а жаль. ![]() |
Автор: | anatoliy [ 22 ноя 2011, 19:23 ] |
Заголовок сообщения: | Re: Термометр с 7-сегментным индикатором |
А в прерывании регенерацию индикатора сделать слабо? ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |