راه اندازی این مقایسه کننده با دستور زیر انجام میشود:
CONFIG ACI =ON/OFF, COMPARE = ON/OFF, TRIGGER=TOGGLE|RISING|FALLING
CONFIG ACI = ON/OFF : در زمان استفاده از مقایسه کننده باید یک باشد.(در صورت استفاده از صفر مقایسه کننده کار نخواهد کرد).
COMPARE = ON/OFF: در صورت انتخاب ON ، AC0 مستقیما به ورودی CAPTURE تایمر/کانتر یک وصل می شود.
TRIGGER=TOGGLE|RISING|FALLING: نحوه روی دادن وقفه مقایسه کننده را نشان می دهد.
FALLING : یک لبه پایین رونده در خروجی مقایسه کننده باعث یک شدن پرچم وقفه مقایسه کننده و اجرا شدن برنامه وقفه خواهد شد.
RISING : یک لبه بالا رونده در خروجی مقایسه کننده باعث یک شدن پرچم وقفه مقایسه کننده و اجرا شدن برنامه وقفه خواهد شد.
TOGGLE : یک به صفر یا یک صفر به یک در خروجی مقایسه کننده باعث یک شدن پرچم وقفه مقایسه کننده و اجرا شدن برنامه وقفه خواهد شد.
مقایسه کننده آنالوگ مقادیر ولتاژ آنالوگ موجود بر روی دو پایه خود را ( پایه مثبت (AIN0) و پایه منفی (AIN1) ) با هم مقایسه می کند .(مانند op –amp ) .زمانی که ولتاژ موجود در ورودی مثبت بیشتر از ولتاژ موجود در ورودی منفی باشد ، خروجی مقایسه کننده (AC0) یک می شود.مقایسه کننده دارای یک پرچم وقفه مجزا است.خروجی مقایسه کننده می تواند به عنوان تریگر ورودی CAPTURE تایمر/ کانتر یک نیز استفاده شود.
مثال :
$regfile = "m8def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portc.0
Config Portd = Input
Config Aci = On , Compare = On , Trigger = Falling
Config Timer1 = Timer , Capture Edge = Falling , Noise Cancel = 1 , Prescale = 1024
Enable Interrupts
Enable Icp1
Enable Aci
On Aci Q
Dim A As Byte
Do
Locate 1 , 1
Lcd Timer1
Loop
End
Q:
Locate 2 , 1
Lcd Capture1
Stop Timer1
Return
در مثال بالا تایمر یک در مد Capture راه اندازی شده است ، در این مد در صورتی که یک لبه به پایه ICP (پایه 14 مگا 8 ) اعمال شود ،مقدار شمرده شده توسط تایمر 1 در ریجستر Capture1 ریخته میشود و شما میتوانید از این مقدار استفاده کنید . در مثال به جای لبه بالا رونده از وقفه مقایسه گر استفاده شده است ، هنگامی مقدار ولتاژ پایه مثبت مقایسه گر از ولتاژ پایه منفی بیشتر شود وقفه فعال شده و مقدار شمرده شده توسط تایمر در ریجستر Capture1 ریخته میشود و سپس در موقعیت 2و1 روی LCD به نمایش در میاید ، شما میتوانید در زیر روال وقفه از هر دستور دیگری نیز استفاده کنید ،
با اسفاده از این روش میتوان زمان تناوب پالس رو اندازه گرفت