ฟังก์ชัน SerialEvent กับ Arduino

โดยปกติแล้วในการเขียนโปรแกรมติดต่อกับพอร์ตอนุกรม ในบางงานเราต้องการรับข้อมูลอนุกรมในรูปแบบของอินเตอร์รัปต์ คือ ส่วนของโปรแกรมหลัก ยังคงทำงานไปอย่างต่อเนื่อง ถ้ามีข้อมูลเข้ามาที่พอร์ตอนุกรม เราจึงจะค่อยเข้าไปอ่านข้อมูลจากบัพเฟอร์รับข้อมูล เราสามารถทำงานในรูปแบบนี้ได้ด้วยฟังก์ชัน SerialEvent ที่ Arduino ได้เตรียมไว้ให้ใช้งานดังนี้



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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

สร้างต้นคริสต์มาสด้วย JAVA

การใช้งาน PIC18Fxxxx กับ MPLAB X + XC8 ด้วย Peripheral Libraries (PLIBS)