สิ่งเหล่านี้ไม่ใช่ความถี่เดียวที่มีสำหรับสัญญาณ PWM อย่างไรก็ตามพวกเขาเป็นความถี่ที่กำหนดโดย prescaler ที่ใช้ (ซึ่งคุณสามารถเปลี่ยนได้อย่างง่ายดายตามรายละเอียดด้านล่าง)
หมุด PWM 3 คู่แต่ละตัวเชื่อมโยงกับตัวจับเวลาหนึ่งตัวแต่ละตัวมีความถี่พื้นฐานของตัวเองดังต่อไปนี้:
- พินที่ 5 และ 6 ถูกจับคู่กับตัวจับเวลา 0 พร้อมความถี่พื้นฐาน 62500Hz
- หมุด 9 และ 10 ถูกจับคู่บน timer1 โดยมีความถี่พื้นฐาน 31250Hz
- พิน 3 และ 11 ถูกจับคู่บน timer2 โดยมีความถี่พื้นฐาน 31250Hz
จากนั้นชุดพินแต่ละชุดจะมีค่าพรีเซลเลอร์จำนวนหนึ่งซึ่งสามารถเลือกได้ซึ่งจะแบ่งความถี่พื้นฐานของพินคู่นั้น ค่าพรีสเกลเลอร์ที่มีคือ:
- พิน 5 และ 6 มีค่าพรีเซลเลอร์เป็น 1, 8, 64, 256 และ 1024
- พิน 9 และ 10 มีค่าพรีสเกลเลอร์เป็น 1, 8, 64, 256 และ 1024
- พิน 3 และ 11 มีค่าพรีสเกลเลอร์เป็น 1, 8, 32, 64, 128, 256, และ 1024
การผสมที่แตกต่างกันจะให้ความถี่ที่แตกต่างกันในพิน PWM ที่กำหนด ขอให้สังเกตว่าตัวจับเวลา 2 (ผูกกับหมุด 3 และ 11) มีค่าพรีสเกลเลอร์มากกว่าที่มีอยู่ทำให้มีความถี่มากขึ้น
ทีนี้ทำไมตัวจับเวลา 2 ถึงแตกต่างนั่นเป็นคำถามแยกต่างหาก
แก้ไข: นี่คือรายการความถี่ PWM ที่เป็นไปได้ต่อขา (จากบทความนี้ ):
สำหรับพิน 6 และ 5 (OC0A และ OC0B):
- หาก TCCR0B = xxxxx001 ความถี่คือ 64kHz
- หาก TCCR0B = xxxxx010 ความถี่คือ 8 kHz
- หาก TCCR0B = xxxxx011 ความถี่คือ 1kHz (นี่เป็นค่าเริ่มต้นจาก Diecimila bootloader)
- หาก TCCR0B = xxxxx100 ความถี่คือ 250Hz
- หาก TCCR0B = xxxxx101 ความถี่คือ 62.5 Hz
สำหรับพิน 9, 10, 11 และ 3 (OC1A, OC1B, OC2A, OC2B):
- หาก TCCRnB = xxxxx001 ความถี่คือ 32kHz
- หาก TCCRnB = xxxxx010 ความถี่คือ 4 kHz
- หาก TCCRnB = xxxxx011 ความถี่คือ 500Hz (นี่คือค่าเริ่มต้นจาก Diecimila bootloader)
- หาก TCCRnB = xxxxx100 ความถี่คือ 125Hz
- หาก TCCRnB = xxxxx101 ความถี่คือ 31.25 Hz
TCCRnB
เป็นที่ที่คุณตั้งค่าบิต prescaler สำหรับตัวจับเวลาn
แทนที่n
ด้วย 0, 1 หรือ 2 ขึ้นอยู่กับตัวจับเวลาที่คุณต้องการตั้งค่า หากคุณยังไม่แน่ใจเกี่ยวกับการใช้งานระดับบิตโปรดอ่านบทช่วยสอนคณิตศาสตร์นี้
แหล่งที่มาของฉัน:
โปรดทราบว่าดูเหมือนว่ามีความแตกต่างในแหล่งข้อมูลเหล่านั้นเกี่ยวกับว่าหมุด 9 และ 10 มีพฤติกรรมเช่นเดียวกับ 5 และ 6 หรือ 3 และ 11 แต่คุณได้รับแนวคิดดังกล่าว ฉันกำลังอ่านชุดข้อมูลเพื่อลองและหาว่าถูกต้องหรือไม่ว่านี่เป็นความแตกต่างระหว่างบอร์ดหรือไม่