ฉันใช้PIC16F877
( แผ่นข้อมูล ) สำหรับหลายโครงการ สำหรับการขัดจังหวะการเปลี่ยนพินภายนอกเดียวคุณสามารถใช้PORTB0
อินเตอร์รัปต์ แต่ตอนนี้ฉันต้องการสนับสนุนการขัดจังหวะการเปลี่ยนพินภายนอก 8 อิสระในวงจรเดียว
ในแผ่นข้อมูลมีข้อความระบุว่ามีอินเทอร์รัปต์ 15 รายการPIC16F877
แต่ฉันเดาว่าจะนับรวมการขัดจังหวะตัวจับเวลาและอื่น ๆ ... ซึ่งไร้ประโยชน์ในกรณีนี้
นี่คือสิ่งที่แผ่นข้อมูลพูดเกี่ยวกับการINTCON
ลงทะเบียน
ฉันสามารถใช้อินเทอร์รัปต์ 4 รายการโดยใช้ bit0 ได้RBIF
หรือไม่ PB7:PB4
มันหมายถึงการเปลี่ยนแปลงใน ฉันจะระบุพินที่เปลี่ยนแปลงได้อย่างไรโดยการอ่านค่าพอร์ตในรูทีนการขัดจังหวะ
แม้ว่าฉันจะได้รับคำตอบในเชิงบวกจากข้างต้น แต่ฉันต้องการการขัดจังหวะ 8 ครั้ง แน่นอนฉันยังคงสามารถใช้INTE
สำหรับPORTB0
การเปลี่ยนแปลง ถ้าอย่างนั้น4 + 1 = 5
อีก 3 คนล่ะ? (อย่างไรก็ตามการที่อินเตอร์รัปต์ทั้ง 8 เหตุการณ์นั้นเป็นประเภทเดียวกัน4 + 1 + 3 = 8
สิ่งที่ดูน่าเกลียดใช่มั้ย)
ไม่มีงานหนักอื่น ๆ ที่คาดหวังจากตัวควบคุมไมโครอื่น ๆ ที่ตรวจสอบ 8 พิน (เมื่อพูดถึงงานอื่น ๆ มันจะต้องรักษาชุดของตัวนับที่แยกต่างหากและส่งผ่านบ่อยครั้งประมาณ 4 ไบต์ไปยังพีซีตามลำดับ)
ข้อเสนอแนะใด ๆ ยินดีต้อนรับ แม้ว่ามันจะเกี่ยวกับการเปลี่ยนไมโครคอนโทรลเลอร์สำหรับอันที่เหมาะสมกว่า (แต่เอ่อ .. อย่าบอกให้ฉันไปจากPIC
s)