関数名 | 機能と書式 |
xQueueCreate | キューバッファの生成 《書式》 xQueueHandle xQueueCreate(unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize); uxQueueLength :格納する最大アイテム数 uxItemSize :アイテムのバイト数(固定長) 戻り値 :確保できたらハンドル値 不可なら0 《使用例》 lcdQueue = cQueueCreate(5, 17); //17バイト幅で5個分のキュー |
xQueueSend | キューに送信(キューの最後尾に書き込み) xQueueSendToBackと同じ 割り込み処理内では使用禁止 《書式》 portBASE_TYPE xQueueSend(xQueueHandle xQueue, const void *pvItemToQueue, portTickType xTicksToWait); xQueue :キューのハンドル値 pvItemToQueue :キューへ送るデータへのポインタ xTicksWait :キュー空きを待つ最大時間 portMAX_DELAYとすると永久待ちとなる 戻り値 :成功でpdTRUE 失敗でerrQUEUE_FULL 《使用例》 Msg[] = "Display Data xxxx"; xQueueSend(lcdQueue, Msg, portMAX_DELAY); |
xQueueSendToBack | キューに送信(キューの最後尾に書き込み) xQueueSendと同じで 書式もxQueueSendと同じ。割り込み処理内では使用禁止 |
xQueueSendToFront | キューに送信(キューの最前部に書き込み) 書式はxQueueSendToBackと同じ。割り込み処理内では使用禁止 |
xQueueReceive | キューからデータを取り出す。取り出したデータを格納するアイテムサイズと同じ長さのバッファを用意する必要がある 割り込み処理内では使用禁止 《書式》 portBASE_TYPE xQueueReceive(xQueueHandle xQueue, void *pvBuffer, portTicksType portTicksToWait); xQueue :キューのハンドル値 pvBuffer :取り出し先のバッファのポインタ portTicksToWait:キューが空のときデータ送信を待つ最大時間、 portMAX_DELAYとすると永久待ち 戻り値 :正常ならpdTRUE 失敗ならpdFALSE 《使用例》 unsigned char Buf[20]; xQueueReceive(lcdQueue, Buf, portMAX_DELAY); |
xQueuePeek | キューからデータを取り出す。キューのデータはそのまま残す 取り出したデータを格納するバッファが必要 割り込み処理内では使用禁止 《書式》 portBASE_TYPE xQueuePeek(xQueueHandle xQueue, void *pvBuffer, portTicType xTicksToWait); xQueue :キューのハンドル値 pvBuffer :取り出し先のバッファのポインタ xTicksToWait:キューが空のときデータ送信を待つ最大時間、 portMAX_DELAYとすると永久待ち 戻り値 :正常ならpdTRUE 失敗ならpdFALSE |
xQueueSendFromISR | 割り込み処理ルーチン内で使うxQueueSend データをキューにコピーするので、データサイズは小さくすべき 《書式》 portBASE_TYPE xQueueSendFromISR(xQueueHandle xQueue, const void *pvItemToQueue, portBASE_TYPE *pxHigherPriorityTaskjWoken); xQueue :キューのハンドル値 pvItemToQueue :キューへ送るデータへのポインタ pxHigherPriorityTaskWoken:pdTRUEへのポインタとすると キューを送った先のタスクのブロックを解除し優先レベル を現在実行タスクより高くする pdFALSEへのポインタとした場合には割り込み処理の最後で portSWITCH_CONTEXT()を実行してコンテキストの切り替えを する必要がある 戻り値 :正常ならpdTRUE 、失敗ならpdFALSE |
xQueueSendToBackFromISR | 割り込み処理ルーチン内で使うxQueueSendToBackで 書式はxQueueSendFromISRと同じ |
xQueueSendToFrontFromISR | 割り込み処理ルーチン内で使うxQueueSendToFrontで 書式はxQueueSendFromISRと同じ |
xQueueReceiveFromISR | 割り込み処理ルーチン内で使うxQueueReceive 《書式》 portBASE_TYPE xQueueReceiveFromISR(xQueueHandle xQueue, void *pvBuffer, portBASE_TYPE *pxTaskWoken); xQueue :キューのハンドル値 pvBuffer :取り出し先のバッファのポインタ pxTaskWoken :pdTRUEへのポインタとすると、キューが空で 待っていたタスクのブロックを解除する。 pdFALSEへのポインタとすると何もしない |
xQueueAddToRegistry | デバッグ用にキューに名前を付け、レジストリにキューを追加する 《書式》 void vQueueAddToRegistry(xQueueHandle xQueue, signed portCHAR *pcQueueName); xQueue :キューのハンドル値 pcQueueName :キューに付ける名称へのポインタ 《使用例》 xQueue = xQueueCreate(10, sizeof(portCHAR)); vQueueAddToRegistry(xQueue, "MeaningfulName"); |
vQueueUnregisterQueue | デバッグ用に追加したキューのレジストリを削除する 《書式》 void vQueueUnregisterQueue(xQueueHandle xQueue); xQueue :キューのハンドル値 《使用例》 vQueueUnregisterQueue(xQueue); vQueueDelete(xQueue); |
没有评论:
发表评论