-
- Для "медленных" событий (обрабатываются в big loop) -- по методу rezident'а (см. ниже). Для быстрых (могут возникать быстрей, чем оборачивается цикл) -- прерывание от таймера. Либо под задачу просто выделяется отдельный аппаратный таймер. fk0(953 знак., 06.01.2012 23:34)
- Ничего толком о "таймерной службе" не понял, но Vit(1005 знак., 06.01.2012 23:30)
- Шо, опять???! О_о Уже не один раз пояснял, что таймер (беззнаковая целая переменная) нужен один. Для отработки пауз каждый КА использует собственную временнУю засечку, сохраняя текущее значение этого единого таймера как начальную метку rezident(340 знак., 06.01.2012 23:16)
- Зачем так категорично? Andreas(391 знак., 07.01.2012 12:02)
- Ваш подход известен как своей относительной простотой, так и ограничениями и неудобствами. У мну в немаленьком проекте все обработчики лежат в библиотеке (BSP), а количество задач с таймерами может быть различным, да и делают системные библиотеки Vit(33 знак., 07.01.2012 12:13)
- Разумеется. Несложным проектам - простые решения. Andreas(300 знак., 07.01.2012 12:31)
- Ваш подход известен как своей относительной простотой, так и ограничениями и неудобствами. У мну в немаленьком проекте все обработчики лежат в библиотеке (BSP), а количество задач с таймерами может быть различным, да и делают системные библиотеки Vit(33 знак., 07.01.2012 12:13)
- Зачем так категорично? Andreas(391 знак., 07.01.2012 12:02)
- Какая нахуй пауза?! Сдурел? Во всех конечных автоматах отдельное состояние "пауза". С обязательным, блядь, отключение исполнительных механизмов (или включение, индивидуально, в явной форме, с умом, в зависимости от ситуации). И со сбросом Скрипач(128 знак., 06.01.2012 23:05 - 23:08)
- Не ори! :) Поправлюсь. Чтобы таймеры можно было применять в автоматах с состоянием "Пауза". Прежние таймеры этого не позволяли. Таймерная служба тикала все помеченные флагами таймеры. И в состояниях автоматов "Пауза" нужно было блокировать mazur(50 знак., 06.01.2012 23:11)
- В состояние "Пауза" автомат должен ПЕРЕХОДИТЬ и, потом, из него выходить. Сам. Своими силами. - Скрипач(06.01.2012 23:19)
- Анахуа блокировать? Хай собі тікають. Перед использованием сбросить. А вообще, безопасность не бывает "геморной". Скрипач(36 знак., 06.01.2012 23:15)
- Только после использования сбросить, чтобы событие, сгенерированное одним таймером, могло использоваться в разных автоматах ибо зачем плодить уникальные таймеры под каждый автомат. - Vladimir Ljaschko(06.01.2012 23:19)
- Ну штож вы Christmas Eve-то не чтете?! :) Опять пьяным интересные темы перетирать (горе мне, горе :) - Скрипач(06.01.2012 23:23)
- А какие у вас таймеры-то? У меня такие. Их сбрасывать нужно ПЕРЕД использованием. А один таймер на несколько задач... зачем?! - Скрипач(06.01.2012 23:26, ссылка)
- Нет, такие штуки у меня закопаны внутри каждого автомата. Я про генерацию универсальных тиков типа так Vladimir Ljaschko(464 знак., 06.01.2012 23:38)
- Сходу заметил недостатки. При каждом проходе обрабатывается только одно событие, хотя оба могут наступить одновременно. Что происходит со вторым событием? Оно сохраняется где-то в функции GetTimerEvent и обрабатывается на следующем проходе rezident(23 знак., 06.01.2012 23:51)
- Таких у меня нет. У меня либо atmega8 либо Industrial PC + Linux Fedora 16. По средине ничего в линейке нет. - Скрипач(06.01.2012 23:44)
- Крайности! Причём жуткие. - fk0(06.01.2012 23:46)
- никакие не крайности, с одной стороны жалкий микроконтроллер для студентов, с другой жалкая поделка. - T.Дocтoeвcкий(06.01.2012 23:52)
- Крайности! Причём жуткие. - fk0(06.01.2012 23:46)
- Нет, такие штуки у меня закопаны внутри каждого автомата. Я про генерацию универсальных тиков типа так Vladimir Ljaschko(464 знак., 06.01.2012 23:38)
- А какие у вас таймеры-то? У меня такие. Их сбрасывать нужно ПЕРЕД использованием. А один таймер на несколько задач... зачем?! - Скрипач(06.01.2012 23:26, ссылка)
- Ну штож вы Christmas Eve-то не чтете?! :) Опять пьяным интересные темы перетирать (горе мне, горе :) - Скрипач(06.01.2012 23:23)
- Только после использования сбросить, чтобы событие, сгенерированное одним таймером, могло использоваться в разных автоматах ибо зачем плодить уникальные таймеры под каждый автомат. - Vladimir Ljaschko(06.01.2012 23:19)
- То что ты так написал называется side effects. Нормальные люди их как огня боятся. - Скрипач(06.01.2012 23:06)
- Что за side effects? - mazur(06.01.2012 23:13)
- Побочный эффект. Скрипач(271 знак., 06.01.2012 23:29)
- Что за side effects? - mazur(06.01.2012 23:13)
- Не ори! :) Поправлюсь. Чтобы таймеры можно было применять в автоматах с состоянием "Пауза". Прежние таймеры этого не позволяли. Таймерная служба тикала все помеченные флагами таймеры. И в состояниях автоматов "Пауза" нужно было блокировать mazur(50 знак., 06.01.2012 23:11)