การใช้งานวงจรนับและจับเวลาใน MCU

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ไมโครคอนโทรลเลอร์ที่เราใช้ในโครงงานนั้นมีฮาร์ดแวร์พิเศษสำหรับการนับค่าและจับเวลา ซึ่งเราสามารถนำมาใช้ประโยชน์ได้ในหลายสถานการณ์ เช่นการคำนวณหาระยะเวลาระหว่างเหตุการณ์สองเหตุการณ์หรือการสั่งให้ไมโครคอนโทรลเลอร์ทำงานหนึ่ง ๆ ในทุก ๆ ช่วงเวลาที่กำหนด เป็นต้น


การใช้งานอินเทอร์รัพท์

อินเทอร์รัพท์ (interrupt) หรือการขัดจังหวะ คือการที่หน่วยประมวลผลตอบสนองต่อเหตุการณ์หนึ่ง ๆ โดยหยุดงานที่กำลังดำเนินการอยู่ชั่วคราวเพื่อไปทำคำสั่งในโปรแกรมส่วนอื่นที่ตอบสนองต่อเหตุการณ์นั้น ๆ ตัวอย่างของเหตุการณ์ที่ส่งผลให้เกิดการขัดจังหวะนั้นได้แก่การที่ขาอินพุทมีการเปลี่ยนสถานะโลจิก การมีข้อมูลเข้ามาที่ขารับข้อมูล รวมถึงเหตุการณ์ที่เกิดขึ้นภายในตัวไมโครคอนโทรลเลอร์เอง อาทิเช่นการแปลงสัญญาณแอนะล็อกเป็นดิจิทัลเสร็จสิ้นลง การเกิดการโอเวอร์โฟลว์ของตัวนับ ฯลฯ

การใช้งานอินเทอร์รัพท์นั้นมีข้อดีหลายอย่าง โดยเฉพาะอย่างยิ่งในกรณีที่เราต้องการเขียนโปรแกรมตรวจจับเหตุการณ์ที่สนใจโดยที่ไม่ทราบว่าเหตุการณ์นั้นจะเกิดขึ้นเมื่อใด ซึ่งในการเขียนโปรแกรมแบบปกติที่ไม่ใช้อินเทอร์รัพท์นั้นเราจะต้องมีส่วนของโปรแกรมที่คอยตรวจสอบสถานะของเหตุการณ์เป็นช่วง ๆ