Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; 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 выше - макрос, который сохраняет состояние разрешения прерываний, запрещает их, отрабатывает команды и возвращает старое значение разрешения.

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 6 на 2:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru