Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Динамическая индикация
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Neytrino
Люди, помогите мне понять, как организовать динамическую индикацию. Написал программу, все работает, но возникает вопрос, как только я начинаю опрашивать, скажем датчик температуры, в момент опроса, индикация останавливается на одной цифре, пока, не закончиться задержка для получения результата с датчика. И так каждый раз, вот хидер задержек
Код
#define Fosc 12000000
#define Fosc_Hz  Fosc
#define Fosc_kHz (Fosc/1000)
#define Fosc_MHz (Fosc_kHz/1000)
#define Fosc_GHz (Fosc_MHz/1000)
#define delay_ns(x) __delay_cycles(x*Fosc_GHz)
#define delay_us(x) __delay_cycles(x*Fosc_MHz)
#define delay_ms(x) __delay_cycles(x*Fosc_kHz)
#define delay_s(x) __delay_cycles(x*Fosc_Hz)

Я понимаю, из за чего так происходит, но вот как сделать индикацию не зависящую от задержек в программе, не представляю. Может посоветуете что-нить? Может сами задержки как-нить по другому организовать? Не пинайте сильно только sm.gif
rezident
Типовое решение - метод конечных автоматов (КА). В бесконечном цикле вызываются по очереди все КА. Никаких задержек внутри них не используется. Просто там, где по алгоритму нужна задержка, переход в другое состояние КА происходит через такой же (как требуемая задержка) промежуток времени. Т.е. при входе в функцию КА проверяется: истек ли требуемый промежуток времени? Если не истек, то выход из функции. Если истек, то переход в следующее состояние КА.
Neytrino
Ого, что-то я запутался, ладно, почитаю повнимательнее про эти КА
ukpyr
обновление индикации вынести в прерывание таймера, заполнение буфера можно делать в основном цикле
Neytrino
Цитата(ukpyr @ Jan 4 2011, 22:58) *
обновление индикации вынести в прерывание таймера, заполнение буфера можно делать в основном цикле

А можно подробнее описать процесс?
Neytrino
Всем спасибо, разобрался
sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.