C ile AVR Programlama -27- TC0 Zamanlayıcı Yazmaçları

AVR derslerine TC0 zamanlayıcı modülünün yazmaçlarını anlatarak devam ediyoruz. Yazmaçları anlatmamız bittiğinde kullanımı hakkında biraz bilgi vereceğiz.

TCCR0B – TC0 Denetim Yazmacı B

Bit 7 – FOC0A : Çıkış karşılaştırmasına zorla A 

FOC0A biti WGM PWMsiz modda çalıştığı zaman etkin olur. FOC0A bitine bir (1) yazıldığında karşılaştırma eşleşmesi hemen dalga formu üreteci ünitesinde gerçekleştirilir. OC0A çıkışı COM0A[1:0] bitlerinin durumuna göre değişir. COM0A[1:0] bitleri bu karşılaştırmanın etkisini belirlemeye yarar. FOC0A herhangi bir bir kesme oluşturma, zamanlayıcıyı sıfırlamaz. FOC0A biti her zaman sıfır olarak okunur.

Bit 6 – FOC0A : Çıkış karşılaştırmasına zorla B

FOC0B biti WGM PWMsiz modda çalıştığı zaman etkin olur. FOC0B bitine bir (1) yazıldığında karşılaştırma eşleşmesi hemen dalga formu üreteci ünitesinde gerçekleştirilir. OC0B çıkışı COM0B[1:0] bitlerinin durumuna göre değişir. COM0B[1:0] bitleri bu karşılaştırmanın etkisini belirlemeye yarar. FOC0B herhangi bir bir kesme oluşturma, zamanlayıcıyı sıfırlamaz. FOC0B biti her zaman sıfır olarak okunur.

Bit 3 – WGM02 : Dalga formu üreteci modu 

TCCR0A yazmacına bakın.

Bit 2:0 – CS0[2:0] : Saat Seçici [ n = 0..2]

Bu üç saat seçme bitleri zamanlayıcı/sayıcı tarafından kullanılan saat sinyali kaynağını belirlemeye yarar.

CA02 CA01 CS00 Açıklama
0 0 0 Saat kaynağı yok (Zamanlayıcı durur.)
0 0 1 clkio/1 (ön derecelendirmesiz saat)
0 1 0 clkio/8 (ön derecelendirmeli)
0 1 1 clkio/64 (ön derecelendirmeli)
1 0 0 clkio/256 (ön derecelendirmeli)
1 0 1 clkio/1024(ön derecelendirmeli)
1 1 0 T0 ayağından harici saat girişi. Düşen kenarda saat.
1 1 1 T0 ayağından harici saat girişi. Yükselen kenarda saat.

 

TIMSK0 – TC0 Kesme Maske Yazmacı

Bit 2 – OCIEB : TC0 Çıkış karşılaştırma eşleşmesi B Kesmesi Etkin

OCIE0B bitine bir (1) yazıldığına ve SREG yazmacındaki I biti HIGH yapıldığında Zamanlayıcı/Sayıcı karşılaştırma eşleşmesi kesmesi etkin hale gelir. Eğer karşılaştırma eşleşmesi gerçekleşirse kesme yürütülür, yani TIFR0 yazmacındaki OCF0B bitinin bir (1) olması durumunda.

Bit 1 – OCIEA : TC0 Çıkış karşılaştırma eşleşmesi A Kesmesi Etkin

OCIE0A bitine bir (1) yazıldığına ve SREG yazmacındaki I biti HIGH yapıldığında Zamanlayıcı/Sayıcı karşılaştırma eşleşmesi kesmesi etkin hale gelir. Eğer karşılaştırma eşleşmesi gerçekleşirse kesme yürütülür, yani TIFR0 yazmacındaki OCF0A bitinin bir (1) olması durumunda.

Bit 0 – TOIE – TC0 Taşma Kesmesi Etkin

TOIE0 bitine bir (1) yazıldığında ve SREG yazmacındaki I biti bir (1) yapıldığında Zamanlayıcı/Sayıcı Taşma Kesmesi etkin hale gelir. Eğer zamanlayıcı değerinde bir taşma meydana gelirse kesme yürütülür yani TIFR0 yazmacındaki TOV0 bitinin bir (1) olması durumunda.

GTCCR – Genel Zamanlayıcı/Sayıcı Denetim Yazmacı

Bit 7 – TSM : Zamanlayıcı Senkronizasyon Modu

Bu biti bir (1) konumuna getirmek senkronizasyon modunu açar. Bu modda PSRASY ve PSRSYNC bitlerine yazılan değer saklanır ve bundan dolayı eş  ön derecelendirici reset sinyalleri öne sürülür. Bu eş zamanlayıcı/sayıcıları durdurmayı sağlar ve içindeki değerin ayar boyunca korunmasını sağlar. TSM biti sıfır yapıldığında PSRASY ve PSRSYNC bitleri donanım tarafından sıfır yapılır ve zamanlayıcı saymaya eşzamanlı olarak devam eder.

Bit 1 – PSRASY : Ön derecelendirici Reset Zamanlayıcı/Sayıcı2

Bu bit bir (1) yapıldığında TC2’nin ön derecelendiricisi resetlenir. Bu bit donanım tarafından hemen sıfırlanır.Eğer bu bit TC2 asenkron modda çalışırken yazım yapılırsa bit ön derecelendirici resetlenene kadar bir (1) olarak kalır. TSM biti bir (1) yapılmadıysa bu bit donanım tarafından sıfırlanmaz.

Bit 0 – PSRSYNC : Ön derecelendirici Reset 

Bu bit bir (1) yapıldığında TC0 ve TC1 birimlerindeki ön derecelendirici resetlenir. TSM biti bir (1) yapılmadıkça bu bit donanım tarafından otomatik olarak sıfırlanır. TC0 ile TC1 aynı ön derecelendiriciyi paylaşmaktadır ve bu bit ikisine de etki etmektedir.

 

TCNT0 – TC0 Sayıcı Değeri Yazmacı 

 

Bit 7:0 – TCNT0 [7:0] TC0 Sayıcı Değeri 

Zamanlayıcı yazmacı okuma ve yazma işlemlerine doğrudan izin vermektedir. Bu yazmaca veri yazılınca saat içindeki karşılaştırma eşleşmesini siler. Sayıcı işlerken buna müdahale etmek kayıp karşılaştırma eşleşmelerine (TCNT0 ve OCR0x arasında) neden olabilir.

OCR0A – TC0 Çıkış Karşılaştırma Yazmacı A 

Bit 7:0 – OCR0A[7:0] : Çıkış Karşılaştırması 0 A 

Çıkış karşılaştırma yazmacı A içerisinde devamlı olarak sayaç verisi ile karşılaştırılan (TCNT0) 8 bitlik değer barındırır. Eşleşme, Çıkış karşılaştırması kesmesi ile ya da OC0A’dan dalga formu çıkışı için kullanılabilir.

OCR0B – TC0 Çıkış Karşılaştırma Yazmacı B

Bit 7:0 – OCR0B [7:0] : Çıkış Karşılaştırması 0 B 

Çıkış karşılaştırma yazmacı B içerisinde devamlı olarak sayaç verisi ile karşılaştırılan (TCNT0) 8 bitlik değer barındırır. Eşleşme, Çıkış karşılaştırması kesmesi ile ya da OC0B’dan dalga formu çıkışı için kullanılabilir.

 

TIFR0 – TC0 Kesme Bayrağı Yazmacı

Bit 2 – OCFB : TC0 , Çıkış Karşılaştırma Eşleşmesi B Bayrak biti

OCF0B biti zamanlayıcı ve OCR0B verileri arasında bir eşleşme olduğunda bir (1) konumuna gelir.  OCF0B kesme gerçekleştiğinde donanım tarafından otomatik sıfırlanır. Alternatif olarak bayrak içerisine sıfır (0) yazarak OCF0B sıfırlanabilir. SREG içerisindeki I biti, OCIE0B biti, OCF0B biti bir (1) yapıldığında Zamanlayıcı/Sayıcı karşılaştırma eşleşmesi kesmesi yürür.

Bit 1 OCFA : TC0, Çıkış karşılaştırma eşleşmesi A bayrak biti
OCF0A biti zamanlayıcı ve OCR0A verileri arasında bir eşleşme olduğunda bir (1) konumuna gelir.  OCF0A kesme gerçekleştiğinde donanım tarafından otomatik sıfırlanır. Alternatif olarak bayrak içerisine sıfır (0) yazarak OCF0A sıfırlanabilir. SREG içerisindeki I biti, OCIE0A biti, OCF0A biti bir (1) yapıldığında Zamanlayıcı/Sayıcı karşılaştırma eşleşmesi kesmesi yürür.

Bit 0 – TOV: TC0, Taşma Bayrağı 

TC0’da taşma meydana geldiğinde bu bit bir (1) konumuna gelir. TOV0 biti kesme yürütüldükten sonra otomatik sıfırlanır. Alternatif olarak TOV0 biti bir (1) yazılarak sıfırlanabilir. SREG’de I biti, TOIE0 ve TOV0 bitleri bir (1) olduğunda Zamanlayıcı/Sayıcı taşma kesmesi yürür. Bu bayrak bitinin ayarı WGM02:0 bit ayarına bağlıdır.

TC0’ın yazmaçları hakkında anlatacaklarımız bu kadardı. Şimdi TC0 hakkında kalan bilgileri verelim ve sonrasında diğer birimlere geçelim.

Kaynaklar :

ATmega328P – Microchip Technology , http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf, Erişim Tarihi: 25.08.2018

Kapak Resmi :https://d3s11pzv7w3h1q.cloudfront.net/wp-content/uploads/IC-ATMEGA8A-PU-2.jpg

UYARI!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.