ฉันไม่รู้จัก PICs แต่พวกมันก็เหมือนกับไมโครคอนโทรลเลอร์ส่วนใหญ่ที่มีตัวจับเวลา / ตัวนับที่สามารถตั้งค่าเป็นอินพุตจาก GPIO เพื่อนับพัลส์ดิจิตอลเหล่านั้นบนขอบที่เพิ่มขึ้น คุณต้องแน่ใจว่าความถี่โปรเซสเซอร์ของคุณสูงกว่าความถี่อินพุตของคุณมิฉะนั้นคุณอาจพลาดบางส่วน นอกจากนี้ยังขึ้นอยู่กับขนาดของเคาน์เตอร์ลงทะเบียน 8, 16, 32 บิต ฯลฯ คุณสามารถเรียกใช้ในสภาพที่ล้น ในกรณีนั้น. คุณต้องทริกเกอร์การขัดจังหวะ (ISR) เมื่อตัวนับ overflow เพื่อรักษาจำนวนนับ ตัวอย่างเช่นในการลงทะเบียนตัวนับ 8 บิตมันจะล้นและรีเซ็ตเป็น 0 หลังจากนับ 255 พัลส์ ตัวนับสามารถทริกเกอร์การขัดจังหวะบนเงื่อนไขโอเวอร์โฟลและรูทีนการขัดจังหวะสามารถทำอะไรบางอย่างเช่น overflowCount + = 1
เมื่อคุณอ่านจำนวนพัลส์ทั้งหมดของคุณต่อผู้ใช้คุณจะต้องทำดังนี้: TotalPulses = มูลค่าการลงทะเบียนที่เคาน์เตอร์ + (255 * overflowCount)
ฉันไม่รู้ว่าจะนับนานแค่ไหน แต่คุณสามารถล้นตัวแปรตัวนับของคุณได้หากคุณไม่ใช้ชนิดตัวแปรขนาดใหญ่พอ อาจใช้ชนิด Long 64 บิต
อ่านแผ่นข้อมูลของ PIC ของคุณและคุณควรหาตัวอย่างของตัวนับ