Anda di halaman 1dari 12

Oleh SGO

Aplikasi Mikrkontroler (DTG2K3)


 Menjelaskan register-register pengendali
analog comparator
 Mengoperasikan analog comparator
 Analog comparator adalah sebuah modul
dalam chip yang bertugas membandingkan
tegangan analog pada pin positif AIN0 dengan
pin negatif AIN1. Ketika tegangan pada pin
AIN0 lebih tinggi dari AIN1, maka akan
menge-set flag bit ACO yang dapat
dimanfaatkan untuk membangkitkan interupsi.
 Tegangan catu terhadap comparator analog
dikendalikan oleh bit ACD
1. Special Function I/O Register-SFIOR

Bit ke 3ACME: Analog Comparator Multiplexer Enable


Jika di-set dan ADC dimatikan (bit-ADEN dalam register
ADCSRA di-clear), maka masukan ke pin AIN1 berasal
dari salah satu pin ADC. Jika bit ACME ini di-clear maka
AIN1 lah yang bertindak sebagai pin masukan. Lebih
jelas simak tabel berikut
ACME ADEN MUX2..0 Input (AIN1) Analog Comparator
0 X XXX AIN1
1 1 XXX AIN1
1 0 000 ADC0
1 0 001 ADC1
1 0 010 ADC2
1 0 011 ADC3
1 0 100 ADC4
1 0 101 ADC5
1 0 110 ADC6
1 0 111 ADC7
2. Analog Comparator Control and Status
Register – ACSR
 Bit ke-7 – ACD : Analog Comparator Disable
mengatur saklar catuan comparator, ketika di set
maka comparator dimatikan
 Bit ke-6 – ACBG: Analog Comparator Bandgap
Select
ketika bit ini di-set maka tegangan referensi di pin
AIN0 nilainya 1,23 Volt. Jika di-clear maka
tegangan referensi akan sesuai dengan tegangan
masukan
 Bit ke-4 – ACI: Analog Comp. Interupt Flag
otomatis akan set ketika ada perbedaan tegangan.
 Bit ke-3 – ACIE: Analog Comparator Interupt Enable
Mengaktifkan interupsi analog comparator (ACIE=0,
disable dan ACIE=1, enable)
 Bit ke-2 – ACIC: Analog Comparator Input Capture
Enable
digunakan untuk capture Timer 1
 Bit 1,0 – ACIS1 dan ACIS0: Analog Comparator
Interupt Mode Select
Kedua bit ini menentukan triger interupsi
analog comparator.

ACIS1 ACIS0 Mode Inetrupsi (Bit-


ACO)
0 0 Toggle
0 1 Tidak digunakan
1 0 Falling Edge
1 1 Rising Edge
 Pilih saluran input
 Pilih non/aktif analog comparator
 Pilih bandgap/tidak
 Pilih interupsi analog comparator/tidak
 Pilih output analog comparator ke capture timer 1 / tidak
 Pilih triger
SFIOR = (0<<ACME) ; //pilih saluran input
//jika menggunakan saluran ADC, setting ADMUX
ACSR = (0<<ACD) //aktifkan analog comp
|(0<<ACBG) //pakai bandgap atau tidak
|(0<<ACIE) // non/aktif interupsi analog comp
|(0<<ACIC) // digunakan untuk capture T1 / tidak
|(0<<ACIS1)|(0<<ACIS0); //pilih triger

Kemudian buat aliran program untuk mengecet flag ACI


While(1){
loop_until_bit_is_set(ACSR,ACI); // tunggu interupsi
ACSR =(0<<ACI) ; //clear ACI
//lakukan sesuatu
}