Page 84 - ArduinoและPOP-BOT
P. 84

84



            6.2.7.3  uart_available


                    เป นฟ งก ชั่ นตรวจสอบการรั บข อมู ลเข ามาจากคอมพิ วเตอร
                    รู ปแบบ
                       unsigned char uart_available(void)

                    การคื นค า

                       - เป น “0” เมื่ อยั งไม มี ข อมู ลเข ามา
                       - มากกว า 0 เมื่ อมี ข อมู ลเข ามา โดยมี ค าเท ากั บจํ านวนของอั กขระที่ ได รั บ

                    ตั วอย างที่  6-19
                       char x =uart_available();

                           // ตรวจสอบว า มี ข อมู ลเข ามาทางภาครั บของโมดู ล UART หรื อไม  ถ า x มี ค ามากกว า 0 แสดงว า
                           // มี ข อมู ลเข ามายั งภาครั บแล ว ควรอ านข อมู ลออกด วยฟ งก ชั่ น uart_getkey ในลํ าดั บถั ดไปทั นที
            6.2.7.4 uart_getkey


                    เป นฟ งก ชั่ นอ านข อมู ลจากบั ฟเฟอร ตั วรั บของโมดู ลสื่ อสารข อมู ลอนุ กรมภายในไมโครคอนโทรลเลอร

                    รู ปแบบ

                       char uart_getkey(void)
                    การคื นค า

                       - เป น “0” เมื่ อไม มี การรั บอั กขระใดๆ เข ามายั งวงจรภาครั บของโมดู ล UART
                       - เป นค าของอั กขระที่ รั บได ในรู ปแบบของรหั สแอสกี้

                    ตั วอย างที่  6-20
                       #include <popbot.h>              // เรี ยกใช ฟ งก ชั่ นพื้ นฐาน
                       void setup()
                       {
                       }
                       void loop()                      // ลู ปการทํ างานหลั ก
                       {
                           if(uart_available())         // ตรวจสอบว ามี ข อมู ลเข ามาหรื อไม
                           {
                              if(uart_getkey()==’a’)    // ตรวจจั บการกดคี ย  a ว า ถู กกดหรื อไม
                              {
                                  lcd(“Key a Active!”);  // แสดงข อความเพื่ อตอบสนองต อการตรวจพบว ามี การคี ย  a
                                  sleep(1000);          // หน วงเวลาแสดงข อความประมาณ 1 วิ นาที
                              }
                           else
                           {
                              lcd(“#c”);                // เคลี ยร ข อความที่ หน าจอโมดู ล LCD
                           }
                       }
                    }
   79   80   81   82   83   84   85   86   87   88   89