Компоненты и технологии • №2 '2011 компоненты



Pdf көрінісі
бет54/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   50   51   52   53   54   55   56   57   ...   129
Kurniz

taskYIELD(), в результате чего управление по-
лучает равноприоритетная задача-передатчик 
2 (момент времени (4)). Когда она записывает 
значение 200 в очередь, снова разблокируется 
высокоприоритетная задача-приемник — мо-
мент времени (5), и цикл повторяется.
Следует отметить, что в ранее приведенном 
примере, когда задача-приемник имеет более 
высокий приоритет, чем задачи-передатчики, 
очередь не может быть заполнена более чем 
на 1 элемент данных.
Использование очередей 
для передачи составных типов
Одним из типичных способов организа-
ции обмена между задачами с применени-
ем очередей является организация несколь-
ких задач-источников сообщений и одной 
задачи-приемника сообщений (как и в учеб-
ной программе выше). При этом полезной 
окажется возможность знать, какая именно 
задача-источник поместила данные в оче-
редь, чтобы понять, какие именно действия 
нужно выполнить с этими данными.
Простой способ достижения этого — ис-
пользовать в качестве элемента очереди 
структуру, в которой хранятся как сами 
данные, так и указан источник сообщения. 
На рис. 5 показана организация обмена ин-
формацией между задачами в абстрактной 
программе, реализующей контроллер двига-
теля с CAN-интерфейсом.
На рис. 5 изображена также структу-
ра xData, которая выступает в данном случае 
типом элементов очереди. Структура содер-
жит два целочисленных значения:
Рис. 3. Результат выполнения учебной программы № 2
Рис. 4. Последовательность выполнения задач в учебной программе № 2
Рис. 5. Пример организации обмена информацией между задачами


103
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 6 '2011
www.kit3e.ru


Достарыңызбен бөлісу:
1   ...   50   51   52   53   54   55   56   57   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет