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



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

portBASE_TYPE, в которую будет поме-
щен результат выполнения API-функции 
crQUEUE_RECEIVE(). Может принимать 
следующие значения:
pdPASS — означает, что данные успешно 
прочитаны из очереди. Если определено 
время тайм-аута (параметр xTicksToWait 
не равен 0), то возврат значения pdPASS 
говорит о том, что новый элемент 
в очереди появился до истечения вре-
мени тайм-аута.
Код ошибки errQUEUE_FULL, опреде-
ленный в файле ProjDefs.h.
Как и при записи элемента в очередь 
из тела сопрограммы, при чтении элемента 
из очереди также нет возможности заблоки-
ровать сопрограмму на бесконечный проме-
жуток времени.
Запись/чтение в очередь
из обработчика прерывания
Для организации обмена между обработ-
чиками прерываний и сопрограммами пред-
назначены API-функции crQUEUE_SEND_
FROM_ISR() и crQUEUE_RECEIVE_FROM_
ISR(), вызывать которые можно только 
из обработчиков прерываний. Причем оче-
редь можно использовать только в сопро-
граммах (но не в задачах).
Запись элемента в очередь (которая исполь-
зуется только в сопрограммах) из обработчи-
ка прерывания осуществляется с помощью 
API-функции crQUEUE_SEND_FROM_ISR()
Ее прототип:
portBASE_TYPE crQUEUE_SEND_FROM_ISR(
xQueueHandle pxQueue,
void *pvItemToQueue,
portBASE_TYPE xCoRoutinePreviouslyWoken
)
Ее аргументы и возвращаемое значение:
1. pxQueue — дескриптор очереди, в которую 
будет записан элемент. Дескриптор очере-
ди может быть получен при ее создании 
API-функцией xQueueCreate().
2. pvItemToQueue — указатель на элемент, 
который будет записан в очередь. Размер 
элемента зафиксирован при создании оче-
реди. Именно это количество байт будет 
скопировано с адреса, на который ссылает-
ся указатель pvItemToQueue.
3. xCoRoutinePreviouslyWoken — этот аргу-
мент необходимо устанавливать в pdFALSE
если вызов API-функции crQUEUE_SEND_


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




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

    Басты бет