Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

погудеть с "такой-то" это с какой? (+)

Отправлено ReAl 24 апреля 2007 г. 22:58
В ответ на: Ответ: отправлено nestandart 24 апреля 2007 г. 22:43

Ну, например, заводишь прерывание с частотой килогерц-два (у меня в одном проекте было вообще 4, так как интервалы с дискретностью в милисекунду и мин. временем в 10-20мс желательно было "дрожать" относительно внешних сигналов не более, чем на треть мс)
В нём что-то в духе

if( timeout != 0) --timeout;

для "отмерить икс мс"
Т.е. отмерка выглядит как

volatile uint16_t timeout;
...
ATOMIC_CODE( timeout = TIMEOUT_VALUE; );
...
uint16_t temp;
...
ATOMIC_CODE( temp = timeout; );
if( !temp)
а_икс_то_прошёл;

Т.е. для меня "дешевле" всегда в прерывании обрабатывать этот таймаут, чем "разруливать флагами". И потом при применении не думать, можно ли сейчас этим таймаутом воспользоваться.

Кроме этого тик доделивается до какого-то интервала - например, 10, 20, 100мс (в зависимости от проекта).
И с этим интервалом бежит ещё свободный таймер, используемый в разных местах.

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

Ответы


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

Сообщение:

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

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

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

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