Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
В переменные вида timeout выношу вещи, которые "такида часто" именно в этом виде использую и в *разных* местах именно этот таймаут проверяю. (+)
Отправлено
ReAl 24 апреля 2007 г. 23:25
В ответ на:
Тьху, ткнул не то. Продолжение. отправлено
ReAl 24 апреля 2007 г. 23:17
А когда нужно в конкретном месте что-то делать заданное (не более заданного) времени и неохота "глобальный" таймаут заводить - то тогда по свободно бегущему таймеру и локальной переменной.
#define MAX_WAIT 40 /* это две секунды выйдет */
{
uint8_t start = tick_50ms;
do {
/* ну мало ли что надо */
} while( (uint8_t)(tick_50ms-start) < MAX_WAIT );
Да, ATOMIC_CODE выше - макрос, который сохраняет состояние разрешения прерываний, запрещает их, отрабатывает команды и возвращает старое значение разрешения.
Составить ответ | Вернуться на конференцию
Ответы