C ile AVR Programlama -16- Analog-Dijital Çevirici (ADC) Yazmaçları

Önceki yazımızda analog ve dijital çeviriciyi anlatmıştık ve en son yazmaçlarda kalmıştık. Şimdi geri kalan yazmaçları anlatalım ve analog-dijital çeviriciyi nasıl kullanacağımızı anlatmakla devam edelim.

ADCL – ADC Veri Yazmacı (Düşük Bit)

ADC çevirimi bittiği zaman sonuç bu iki yazmaç içerisinde bulunur. ADC çevirimi 10-bit olmasından dolayı 8-bitlik yazmaçlara sığmamakta ve yazmacın birine 8-bit veri ötekisine ise kalan 2 bitlik veri kaydedilir. O yüzden iki yazmacı da okuyup bu verileri birleştirerek ADC çevirim sonucunu elde ederiz. Bu yazmaçlar sadece okunabilir yazmaçlar olup ADLAR bitinin (önceki yazıda bahsettik) durumuna göre sola veya sağa hizalı şekilde verileri depolar.  Bitleri tek tek açıklamaya gerek yok çünkü 0-7 arası tüm bitler ADC çevirim sonucunu barındıran bitlerdir. Bu bitleri okuyup birleştirerek son işlemi yapmış olacağız.

 

ADCH – ADC Veri Yazmacı (Yüksek Bit)

Bu yazmaç okunan ADC değerinin son 2 bitini (soldan sağa ilk iki biti) içinde saklar. Bu iki yazmaç veri okuma yazmacıdır ve sadece veri okumaya yarar. ADLAR bitine göre sola hizalandığında bu yazmaç 8-bitlik veri bulundurup diğer yazmaç son iki bitinde (soldan iki bit) kalan veriyi barındırır.

ADCSRB – ADC Denetim ve Durum Yazmacı B 

Bu yazmaç ADC denetim ve ayar bitlerini bulunduran yazmacın devamı niteliğinde üzerinde bazı ayar bitlerini barındırır.

Bit 6 – ACME : Analog Karşılaştırıcı Faal

Bu bit HIGH yapıldığı zaman ve ADC kapatıldığı zaman (ADCSRA yazmacındaki ADEN biti sıfır olduğunda) ADC çoklayıcısı analog karşılaştırıcıya negatif giriş seçer. Eğer bu bit sıfır olarak yazılırsa AIN1 ayağı analog karşılaştırıcı için negatif giriş olarak seçilir.

Bit 2:0 – ADTSn : ADC Otomatik Tetikleyici Kaynağı [n = 2:0 ]

ADCSRA yazmacı içindeki ADATE biti HIGH yapıldıysa bu değerler ADC çevirimi için tetikleyici kaynağını belirler. Eğer ADATE sıfır olarak ayarlanırsa ADTS bitleri bir işleve sahip olmaz. Çeviriim seçili kesme bayrağının yükselen kenarında tetiklenir. Eğer ADCSRA içindeki ADEN biti HIGH yapılırsa çevirim başlar. Serbest Çevirim modunda ADC kesme bayrağı HIGH konumda olsa dahi tetiklenme olmaz.  Bu bitlerin görevleri aşağıdaki tablodaki gibidir.

ADTS [2:0] Tetikleme Kaynağı
000 Serbest Çalışma Modu
001 Analog Karşılaştırıcı
010 Dış Kesme İsteği 0
011 Zamanlayıcı/Sayıcı0 karşılaştırma örtüşmesi A
100 Zamanlayıcı/Sayıcı0 Taşma
101 Zamanlayıcı/Sayıcı1 Karşılaştırma Örtüşmesi B
110 Zamanlayıcı/Sayıcı1 Taşma
111 Zamanlayıcı/Sayıcı1 Yakalama Olayı

 

DIDR0 – Dijital Giriş Devredışı Bırakma Yazmacı

Bu yazmaca yazılan HIGH bitleri karşılık gelen ADC kanalındaki dijital girişi devre dışı bırakır.

Buraya kadar yazmaç kısmını anlatmış olduk. Şimdi bu yazmaçlar üzerinde nasıl ADC ölçümünün yapıldığını anlatmaya sıra geldi. Bunu da sonraki yazıda anlatacağız.

Kaynaklar

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

Kapak Resmi, https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/ATmega8_01_Pengo.jpg/1200px-ATmega8_01_Pengo.jpg

UYARI!!

 

 

Gökhan Dökmetaş

Bilgi Teknolojileri Uzmanı

You may also like...

1 Response

  1. 27/09/2018

    […] Bu yazmacın kullanımını daha önce açıkladığımız için şu bağlantıdan tekrar okuyun. http://www.lojikprob.com/avr/c-ile-avr-programlama-16-analog-dijital-cevirici-adc-yazmaclari/ […]

Bir cevap yazın

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