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


Чтение элемента из очереди



Pdf көрінісі
бет107/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   103   104   105   106   107   108   109   110   ...   129
Kurniz

Чтение элемента из очереди
Для чтения элемента из очереди служит 
API-функция crQUEUE_RECEIVE(), кото-
рую можно вызывать только из тела сопро-


102
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 9 '2011
компоненты
микроконтроллеры
граммы. Прототип API-функции crQUEUE_
RECEIVE():
void crQUEUE_RECEIVE(
xCoRoutineHandle xHandle,
xQueueHandle pxQueue,
void *pvBuffer,
portTickType xTicksToWait,
portBASE_TYPE *pxResult
)
Аргументы API-функции crQUEUE_
RECEIVE():
1. xHandle — дескриптор вызывающей со-
программы. Автоматически передается 
в функцию, реализующую сопрограмму, 
в виде первого ее аргумента.
2. pxQueue — дескриптор очереди, из кото-
рой будет прочитан элемент. Дескриптор 
очереди может быть получен при ее созда-
нии API-функцией xQueueCreate().
3. pvBuffer — указатель на область памя-
ти, в которую будет скопирован элемент 
из очереди. Участок памяти, на которую 
ссылается указатель, должен быть не мень-
ше размера одного элемента очереди.
4. xTicksToWait — максимальное количе-
ство квантов времени, в течение которого 
сопрограмма может пребывать в блоки-
рованном состоянии, если очередь пуста 
и считать элемент из очереди нет возмож-
ности. Для представления времени в мил-
лисекундах следует использовать макро-
определение portTICK_RATE_MS [1, № 4]. 
Задание xTicksToWait равным 0 приведет 
к тому, что сопрограмма не перейдет в бло-
кированное состояние, если очередь пуста, 
и управление будет возвращено сразу же.
5. pxResult — указатель на переменную типа 


Достарыңызбен бөлісу:
1   ...   103   104   105   106   107   108   109   110   ...   129




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

    Басты бет