新闻  |   论坛  |   博客  |   在线研讨会
数据缓冲的程序
我就是我lxw | 2012-06-01 20:59:45    阅读:693   发布文章
static INT8U g_inIndex; // 指向空的位置 static INT8U g_outIndex; // 指向待读取的数据 static INT8U g_msgQueue[IR_DATA_SIZE]; static BOOL PushQueue(INT8U irkey) { INT8U inIndex; OS_ENTER_CRITICAL(); inIndex = (g_inIndex + 1)&(IR_DATA_SIZE-1); if (inIndex == g_outIndex) { OS_EXIT_CRITICAL(); return FALSE; // 队列已满 } g_msgQueue[g_inIndex] = irkey; g_inIndex = inIndex; OS_EXIT_CRITICAL(); return TRUE; } static BOOL PollQueue(INT8U data *pKey) { OS_ENTER_CRITICAL(); if (g_inIndex == g_outIndex) // 队列是空的 { OS_EXIT_CRITICAL(); return FALSE; } *pKey = g_msgQueue[g_outIndex]; g_outIndex = (g_outIndex + 1)&(IR_DATA_SIZE-1); OS_EXIT_CRITICAL(); return TRUE; }
参与讨论
登录后参与讨论
推荐文章
最近访客