Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Воскресенье
24 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры
619072
Топик полностью
Скрипач
, пророк
(12.09.2015 10:51, просмотров: 445)
ответил
Make_Pic
на
Я так же с выходом из цикла при не достижении нужной задержки по условию к следующей задаче в main loop и т.д. И так далее по карусели, если задержка выполнена в какой то задаче, выполняем условие в этой задаче и взводим флаг события и так далее.
А зачем "флаг события"? Как по мне, лишняя сущность.
Лично я использую protothreads Дункелса.
inline void T_RST(uint8_t* timer){ *timer = SysTime_1s;} inline uint8_t T_SECS(uint8_t* timer){ return (SysTime_1s - *timer);} // T_RST(T); PT_WAIT_WHILE(pt, T_SECS(T) < 5);
... но не любой ценой.
Ответить
А нет ли опасности при малых квантах попасть на переход через максимальное значение типа, используемого для счетчика?
-
Олдфаг
(12.09.2015 11:06
,
)
Легко обходится. Я держу три "системных счетчика". В десятках милисекунд, в секундах и в минутах. И не использую задержки больше чем половина диапазона выбранного счетчика.
Скрипач
(87 знак., 12.09.2015 11:12
)