Çözünürlük ve ulaşılabilir frekanslar arasında bir denge vardır. Zamanlayıcı 2'den bahsediyorsunuz, ancak Atmega328P Zamanlayıcı 2'de 8 bitlik bir zamanlayıcı olduğu için CTC'yi 1024'e ayarlayamazsınız.
16 bitlik bir zamanlayıcıdan bahsettiğimizi varsayalım, Atmega328P'deki Timer 1 gibi. Bir ön ölçekleyiciyle, (16 MHz'lik bir saat varsayıldığında) 1'den 65536'ya kadar "tik", yani 62,5 ns'den 4096 µs'ye kadar süre yapabilirsiniz.
Bu, en kesinlik olacaktır ölçüm, çünkü zamanlayıcı tıklaması başına bir (işlemci) saat tıklaması kullanıyorsunuz (bir ön ölçekleyici).
Ancak, 4.096 ms'den daha uzun bir süre için zaman planlıyorsanız, ön ölçekleyiciyi yükseltmeniz gerekir . Zamanlayıcı 1'deki bir sonraki ön ölçekleyici 8'dir, bu nedenle artık 8 kat daha uzun (32768 µs) bir aralık için zaman yapabilirsiniz ancak doğruluğunuz (kesinlik) artık 8 kat azalmıştır. Ayrıntı düzeyi Zamanlayıcının% 'si 62.5 ns'den 62.5 * 8 ns'ye yükseldi, bu da 500 ns.
32.768 ms'den daha uzun bir süreye ihtiyacınız varsa, ön ölçekleyicinin yeniden daha büyük olması gerekir, bir sonraki 64. Böylece şimdi 262144 µs'ye kadar zamanlayabilirsiniz, ancak 62,5 * 64 taneciklik, 4000 ns (4 µs).
Önerim, yapabileceğiniz en düşük ön ölçekleyiciyi kullanmak olabilir, ancak yine de istediğiniz aralığı alın. Yani açıkçası bir defaya mahsus 10 ms'lik bir ön ölçekleyici kullanamazsınız.
http://www.gammon.com.au/timers.
Bu sayfada, farklı ön ölçekleyicilerin etkilerini görselleştirmeye yardımcı olan bir tablo var:
Üst kısım (bir adet) size her ön ölçekleyicinin ayrıntı düzeyini etkili bir şekilde verir. Örneğin, 256'lık bir ön ölçekleyicinin tanecikliği 16,000 ns'dir (16 µs). Belirli frekanslar (2'nin üsleri), kombinasyonlara (örn. 256 sayımla 1 ön ölçekleyici veya 1 sayımla 256 ön ölçekleyici) ödünç verir.
Ancak, sahip olmayan frekanslar için bu özellik, daha küçük ön ölçekleyici (eğer kullanılabilirse) daha ince bir ayrıntı verir.