Показать сообщение отдельно
Старый 31.03.2009, 17:49   #13
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 41
Сообщений: 3,577
Вес репутации: 4386/122
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Вопросы по OSA

Цитата:
Сообщение от Picvan Посмотреть сообщение
Извините за неполный вопрос. TRead() - функция опроса DS18S20.
Задается один параметр адрес канала и возвращает значение температуры или устанавливает флаги к.з./обрыв. При обнаружении неисправности датчика немедленный выход из функции. Я пока не совсем понимаю как лучше: сделать задачи Temperatura1 и Temperatura2 и применить сообщения или через глобальные переменные а TRead сделать задачей. Эти данные затем используются в управлении. Трудно дается перестройка мышления от суперцикла к РТОС.
Повторюсь: не совсем понятно желание вынести TRead в отдельную задачу. Там есть длинные задержки? Или ожидание каких-то событий?

Также нет смысла заводить отдельные задачи для измерения температур. Самое сложное, что можно себе позволить, это выделить одну задачу на измерение обеих температур, да и то, только если данные о температуре требуются нескольким задачам. В большинстве же случаев (конкретно твой случай не рассматриваю, т.к. его целиком не знаю) вызов функции (не задачи) TRead можно делать из той задачи, которой данные о температуре нужны (если такая задача всего одна).

А не так, что задача TRead измеряет температуру, потом передает сообщение задаче Temperature, которая потом передает сообщение основной задаче.

Данные о температуре нужны только одной задаче или нескольким?
tester вне форума   Ответить с цитированием