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
}
}
}