ฟังก์ชัน SerialEvent กับ Arduino
โดยปกติแล้วในการเขียนโปรแกรมติดต่อกับพอร์ตอนุกรม ในบางงานเราต้องการรับข้อมูลอนุกรมในรูปแบบของอินเตอร์รัปต์ คือ ส่วนของโปรแกรมหลัก ยังคงทำงานไปอย่างต่อเนื่อง ถ้ามีข้อมูลเข้ามาที่พอร์ตอนุกรม เราจึงจะค่อยเข้าไปอ่านข้อมูลจากบัพเฟอร์รับข้อมูล เราสามารถทำงานในรูปแบบนี้ได้ด้วยฟังก์ชัน SerialEvent ที่ Arduino ได้เตรียมไว้ให้ใช้งานดังนี้
- จากโค้ดโปรแกรมจะเห็นได้ว่าเราไม่ต้องค่อยตรวจสอบข้อมูลอนุกรมในฟังก์ชัน loop() โดยปล่อยให้ฟังก์ชัน loop() ยังคงทำงานแสดงการติดดับของ LED ที่ขาพอร์ตดิจิตอลหมายเลข 13ไปอย่างต่อเนื่องทุก ๆ 100 มิลลิวินาที
- ส่วนฟังก์ชัน serialEvent() ก็ค่อยรับข้อมูลจากพอร์ตอนุกรม เมื่อมีข้อมูลมาที่พอร์ตอนุกรมฟังก์ชัน serialEvnet จะถูกเรียกใช้งานโดยอัตโนมัติ พร้อมอ่านข้อมุลจากพอร์ตอนุกรมด้วยฟังก์ชัน Serial.read() และเขียนข้อมูลไปที่พอร์ตอนุกรมด้วยฟังก์ชัน Serial.println() ในลำดับถัดไป
ความคิดเห็น
แสดงความคิดเห็น