Page 129 - MDP2022-3
P. 129

{
                            ch  =  Getch();

                            if(ch  ==  0x0d)  {

                                    //  parser  start
                                    handle  =  (rxBuffer[0]  -  0x30)  *  1000  +  (rxBuffer[1]  -  0x30)  *  100  +
                                    (rxBuffer[2]  -  0x30)  *  10  +  (rxBuffer[3]  -  0x30);
                                    //  서보모터에  구분된  신호  저장
                                    OCR1A  =  handle;

                                    //  모터  동작  함수에  플레그  지정
                                    if(rxBuffer[5]  ==  'c')arrowFlag  =  0;
                                    else  if(rxBuffer[5]  ==  'a')arrowFlag  =  1;
                                    else  if(rxBuffer[5]  ==  'b')arrowFlag  =  2;
                                    motorMove(arrowFlag);
                                    //  reset

                                    index  =  0;
                            }
                            else  {
                                    rxBuffer[index++]  =  ch;

                            }
                    }


              }


            void  Putch(char  data)

              {
                    while(!(UCSR1A  &  0x20))
                    UDR1  =  data;
              }


            #수신함수
            char  Getch(void)
              {
                    while(!(UCSR1A  &  0x80));  //  UCSR0A의  준비완료  7번비트가  1이되면  참

                    return  UDR1;                        //참이되면  UDR0  버퍼로  입력된  데이터를  가지고  함수를  호출
            한  main으로  도라감
              }



            void  setPins()
            {
   124   125   126   127   128   129   130   131   132   133   134