2 Temmuz 2025 Çarşamba

 



Bu uygulamada Timer1 kesmesi kullanıldı. Kesme işlemi için Arduino'nun değil harici bir clock kaynağı kullanıldı. Timer1 başlangıç değeri 49 olarak, harici clock frekansı da 5 hz ayarlanarak, 10 sn'de bir programın kesme alt programına giderek buradaki ledi yakması sağlandı. Ana programa dönünce led söndürüldü. Harici clock olarak pull-down şeklinde Arduino'nun 5. pinine bağlı buton ile clock sinyali verildi.

NOT: Bu uygulamadaki kesme işlemi Proteus'ta çalışmadı. Bu nedenle fiziksel Arduino kartında deneme yapıldı ve çalıştı.


void setup()

{

      pinMode(13, OUTPUT);

      cli();          //tüm kesmeler durduruldu

      TCCR1A = 0;     // TCCR1A register 0'lanıyor

      TCCR1B = 0;     // TCCR1B register 0'lanıyor

      TCNT1  = 0;       //sayaç değeri sıfırlandı

      OCR1A = 49;    //timer1 çözünürlüğü

      TCCR1B |= (1 << WGM12);   //CTC(Clear Timer on Compare Match) mod açıldı

      TCCR1B |= (1 << CS12) | (1 << CS11) | (1 << CS10);  //external clock yapıldı. yükselen kenarda tetikleme olacak

      TIMSK1 |= (1 << OCIE1A);  //timer1 karşılaştırma kesmesi aktif edildi

      sei();          //tüm kesmelere izin verildi

}


void loop()

{

      digitalWrite(13, LOW);

}


ISR(TIMER1_COMPA_vect)

{

      digitalWrite(13, HIGH);

      delay(2000);

}


___________________________________________________________________________________________________________________________________________________


0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

Arduino Eğitimi Konu - 9

Toplam Sayfa Görüntüleme Sayısı

Seri İletişim Protokolleri

Sensörlerin Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com