รบกวนคนที่เล่น Microcontroller เกี่ยวกับ Interrupt และ Timer หน่อยนะครับ

คือว่าผมมีวงจรตามรูปนะครับ
ผมตั้งใจจะเขียนโค๊ดให้ LED ทั้งสองดวงติดดับสลับกันไปมา แล้วใช้การนับเวลามาเป็นตัวขัดจังหว่ะ โดยทุก 1 วิ LED ทั้งสองดวงจะติดทั้งคู่ซักแปปนึงแล้วก็ดับไป แล้วกลับมาติดดับติดดับเหมือนเดิม



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

อันนี้ code ครับ

[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
จึงอยากรบกวนขอความรู้หน่อยนะครับ ช่วยดูว่าผมต่อวงจรผิดไปหรือเปล่า หรือ เขียน code ผิดตรงไหน ช่วยแนะนำด้วยครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่