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