Hasbi Sevinç
Hasbi Sevinç
İstanbul-I (Avrupa)
11/08/2015 tarihinden beri üye
115 GY Puanı
42K GY Sırası

Kişisel Sayfaları

İlgi Alanları

1 Rozet
1 Sertifika
0 Soru Sordu
2 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

İstanbul Teknik Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (1)
Arduino 101 Sertifikası
Veriliş Tarihi: Eylül 2015
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

2
Tümünü Gör

Kullanıcıya ait forum aktivitesi bulunmamaktadır.

ARDUİNO KESME ATMA

15 Eylül 2015 tarihinde cevaplandı

hesaplama aşağıdaki resimde

ARDUİNO KESME ATMA

15 Eylül 2015 tarihinde cevaplandı

Merhaba Orkut,

cli(); fonksiyonu bir süreliğine kesmeyi ayar yapman için durdurur. 

TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0; 

bunlar timer için yapman gereken ayarlamalardır. Timer kesmesinin düzgün çalışabilmesi için. bu register'ları daha detaylı tanımak istersen aşağıdaki linki kullanabilirsin:

http://mil.ufl.edu/5666/handouts/avr_pwm_reg_info_summary.pdf

OCR1A değişkeni eğitimde de bahsedilmişti. timer'ın saymaya kaçtan başlayacağını belirlediğimiz yer burası. burada belirttiğin değerden saymaya başlar arduino. 65536 değerine ulaştığı zaman kesmeyi meydana getirir. yani buraya yazdığın değer önemli. timer kesmesinin ne kadar sıklıkla gerçekleşeceğini bu sayı ile belirleyebilirsin

TCCR1B |= (1 << WGM12); ile timerın modunu ayarlıyor

TCCR1B |= (1 << CS12) | (1 << CS10); ile her bir sayma arasında ne kadar süre geçeceğini belirliyor. yani demin bahsettiğimiz OCR1A değişkenindeki sayı artıyordu ya, her bir artma için ne kadar süre geçmesi lazım. örnekteki değer arduino'nun kristalinin 1024'e bölümü olarak ayarlanmış. bu değerler değiştirilerek yine kesme süresi ayarlanabilir. Buraya yazacağın değerler için aşağıdaki tabloyu kullanabilirsin

http://blog.oscarliang.net/ctt/uploads/2013/05/clk_select_16bit.png

TIMSK1 |= (1 << OCIE1A); ile de timer kesmesini aktif yaptık artık

sei(); ile ayarlamalarımız bittiğini ve kesmeleri tekrar çalıştırmak istediğimizi belirtiyoruz.