attachInterrupt ile gittimiz alt proğramda delay(), delayMicroseconds() gibi fonksiyonların hiçbiri kullanılamıyor? Neden? Bu problemi nasıl çözeriz? Bu konu hakkında bir link buldum; ancak pek anlayamadım. Analayan veya bu konu hakkında yardımcı olabilecek arkadaşlar için link aşağıda. http://arduino.cc/forum/index.php/topic,41819.0.html http://code.google.com/p/arduino/source/browse/tags/0015/hardware/cores/arduino/wiring.c Teşekkürler.
Merhaba, Genel olarak kesmeler içerisinde başka fonksiyonlar çağırmak ve uzun işlemler yapmak tercih edilen bir durum değildir. Kesmeler içerisindeki işlemler mümkün olduğunca kısa tutulmalıdır. Örneğin kesme geldiğinde bir ver işlemesi yapılacaksa kesme içerisinde bir bayrağa 1 değerini atayıp ana program içerisinde bu bayrağın durumuna bakılarak işlemlerin yapılması daha uygundur. Delay fonksiyonunun kendisi kesmeleri kullandığı için ve içerisinde kesmeler kapatıldığı için kesme içerisinde kullanılamıyor. Ama yukarıda anlattığım gibi ana işlemleri kesme içinde yapmasanız daha iyi olur.
Delay sadece basit projelerde kullanılır. bir işi belli aralıklarda yapmak istiyorsanız. başlangıç zamanı ile geçen süreyi ölçersiniz. eğer geçen süre istediğiniz süre ye ulaşmış ise işlemi gerçekleştirirsiniz. Delay kullanmak işlemci israfıdır.