Arduino Uno, Nano, Mega (ATmega328P / ATmega2560) mikrodenetleyicilerinde delay() komutu kullanmadan arka planda milisaniyelik veya frekans odaklı hassas işlemler yürütmek için Timer1 (16-Bit CTC) ve Timer2 (8-Bit) register, Prescaler ve OCR değerlerini anında hesaplayın, hazır Arduino C++ kodunu kopyalayın.
Arduino Timer Interrupts Hakkında Sıkça Sorulan Sorular
Timer Interrupt (Donanım Kesmesi) nedir?
Timer interrupt, mikrodenetleyicinin içindeki donanımsal zamanlayıcının belirli bir süreye ulaştığında ana program akışını keserek otomatik olarak bir fonksiyonu (ISR) çalıştırmasıdır.
Neden delay() yerine Timer Interrupt kullanılmalıdır?
delay() fonksiyonu işlemciyi tamamen kilitler ve başka işlem yapmasını engeller. Timer interrupt ise işlemciyi meşgul etmeden hassas zamanlama yapmanızı sağlar.
Prescaler (Saat Bölücü) ne işe yarar?
16 MHz işlemci saati çok hızlıdır (saniyede 16 milyon adım). Prescaler bu frekansı 8, 64, 256 veya 1024'e bölerek daha uzun zaman aralıkları elde etmeyi sağlar.
Timer1 ile Timer2 arasındaki fark nedir?
Timer1 16-bitliktir ve 0 ile 65535 arasında sayabilir (daha uzun süreler için). Timer2 ise 8-bitliktir ve 0-255 arası sayar (daha yüksek frekanslar için idealdir).