task_receivedata.c

来自「small RTOS 嵌入式实时多任务开发」· C语言 代码 · 共 34 行

C
34
字号

#include "config.h"

static volatile uint8 Result_ReceData;

void Task_ReceData(void)
{
 uint8 temp;
 OSQCreate(ReceDataBuf,ReceBuf);  // 创建用于PutChar()的缓冲区

 while(1)
  {
    OSWait(K_SIG,0);
    _RX_SPI(SourAddr);
    Result_ReceData=Dispose(SourAddr);   
    if(Result_ReceData==_AllFramesHasReceived || Result_ReceData==_ReceivedANewFrame)
      {
       for(DataCnt=0;DataCnt<_DataWidth;DataCnt++)
         { 
           _RX_SPI(temp); 
           PutChar(temp);
         }
      }
    else
      {
       for(DataCnt=0;DataCnt<_DataWidth;DataCnt++)
         {  _WAIT_SPI; }
      }
   FrameType=_ControlFrame;
   Transmit(SourAddr,SendData,FrameType);
   _TURN_OFF_SCH;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?