7. Flowchart Proses Konversi ADC
Berikut adalah alur kerja lengkap penggunaan ADC pada ATmega328p:

Flowchart di atas menggambarkan proses pembacaan ADC pada ATmega328p dalam mode single conversion dengan metode polling, dengan konfigurasi sebagai berikut:
-
Mode konversi:
ADC bekerja pada single conversion mode, yaitu setiap konversi dimulai secara manual dengan mengeset bit ADSC = 1. -
Metode sinkronisasi:
Status selesai konversi diperiksa menggunakan polling terhadap bit ADIF pada register ADCSRA, bukan menggunakan interupsi. -
Auto trigger:
Flowchart ini mengasumsikan ADATE = 0, sehingga konversi tidak berjalan otomatis dan harus dimulai ulang oleh program setiap kali pembacaan dilakukan. -
Interrupt ADC:
Flowchart ini tidak menggunakan interrupt ADC, sehingga ADIE = 0. -
Channel input:
Contoh konfigurasi pada flowchart menggunakan ADC0 (pin A0 / PC0) sebagai kanal input analog. -
Tegangan referensi:
Flowchart ini mengikuti contoh program assembly yang menggunakan tegangan referensi internal melalui konfigurasi bit REFS1:REFS0 pada register ADMUX. -
Format data hasil konversi:
Hasil ADC disimpan dalam format right-justified (ADLAR = 0), sehingga nilai 10-bit dibaca penuh melalui dua register:- ADCL sebagai low-byte
- ADCH sebagai high-byte
-
Urutan pembacaan register data:
Register ADCL harus dibaca terlebih dahulu, kemudian ADCH, agar data hasil konversi tetap konsisten. -
Prescaler ADC:
Contoh ini menggunakan prescaler CLK/128 (ADPS2:ADPS0 = 111).
Jika clock sistem 16 MHz, maka clock ADC menjadi:
Nilai ini berada dalam rentang kerja ADC yang direkomendasikan.
Ringkasan Konfigurasi yang Digunakan
- ADC Mode: Single Conversion
- Trigger Mode: Manual (
ADSC = 1) - Polling / Interrupt: Polling (
ADIF) - Auto Trigger: Nonaktif (
ADATE = 0) - Interrupt ADC: Nonaktif (
ADIE = 0) - Channel: ADC0 / A0 / PC0
- Data Alignment: Right-justified (
ADLAR = 0) - Prescaler: CLK/128
- Clock ADC: 125 kHz (jika
F_CPU = 16 MHz)
No comments to display
No comments to display