2 Temmuz 2025 Çarşamba

 



Bu uygulamada timer1 kesmesi kullanıldı. Timer1 başlangıç değeri 49900 olarak ayarlandı. Timer1 16 bitlik olduğu için 65535 e kadar sayma olacak. Formülde bu iki sayıyı yerine koyduğumuzda yaklaşık 1 sn yapıyor. Yani program her 1 sn de bir kesmeye gittiğinde led in durumunu değiştirecek.

void setup()

{

      Serial.begin(9600);

      pinMode(9, OUTPUT);

      cli();          //tüm kesmeler durduruldu

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

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

      TCCR1B |= (1 << CS12) | (1 << CS10);      //prescalar değeri 1024 yapıldı

      TCNT1 = 49900;  //timer1 başlangıç değeri belirlendi

      TIMSK1 |= (1 << TOIE1);     //Overflow kesmesi aktif edildi

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

}


void loop()

{

      Serial.println(TCNT1);

}


ISR(TIMER1_OVF_vect)

{

      digitalWrite(9, !digitalRead(9));

      TCNT1 = 49900;      //timer1 başlangıç değeri tekrar belirlendi

}


_________________________________________________________________________________________________________________________________________________________


0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

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