|
Wyjście Spis treści Wstecz Dalej
Autor artykułu |
©2026 mgr Jerzy Wałaszek
|

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s
permission is not required when using copyrighted material in:
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
Komparator analogowy (ang. Analog Comparator) porównuje wartości wejściowe na nieodwracającej końcówce AIN0 (ang. Analog Input, wejście analogowe) oraz na odwracającej końcówce AIN1:

Gdy napięcie na nieodwracającej końcówce AIN0 jest wyższe od napięcia napięcia na końcówce odwracającej AIN1, to jest ustawiane wyjście komparatora analogowego ACO. Komparator może wyzwalać oddzielne przerwanie, wyłączne dla komparatora analogowego. Użytkownik może wybrać wyzwalanie przerwania przy zboczu narastającym, opadającym lub zmianie poziomu logicznego na wyjściu z komparatora. Poniższy rysunek przedstawia schemat blokowy komparatora wraz z otaczającą go siecią logiczną:

| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0x1F | ACD | - | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | ACSR |
| Zapis/Odczyt | Z/O | O | O | Z/O | Z/O | Z/O | Z/O | Z/O | |
| Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Gdy do tego bitu zostanie zapisana logiczna jedynka, zostaje wyłączone zasilanie komparatora analogowego. Bit ten można ustawić w dowolnym momencie, aby wyłączyć komparator analogowy i w ten sposób zmniejszyć pobór energii przez mikrokontroler w trybach aktywnym i bezczynnym. Przy zmienianiu stanu bitu ACD należy wyłączyć przerwanie od komparatora przez wyzerowanie bitu ACIE w rejestrze ACSR. W przeciwnym razie może pojawić się przerwanie przy zmianie stanu tego bitu.
Ten bit jest zarezerwowany i przy odczycie zawsze daje stan zero.
Wyjście komparatora analogowego jest synchronizowane, a następnie podłączane bezpośrednio do ACO. Synchronizacja wprowadza opóźnienie 1...2 cykli zegarowych.
Ten bit jest ustawiany sprzętowo, gdy zdarzenie z wyjścia komparatora wyzwala przerwanie w trybie zdefiniowanym bitami ACIS1 i ACIS0. Procedura obsługi przerwania z komparatora analogowego jest wykonywana, jeśli bit ACIE jest ustawiony oraz jest ustawiony znacznik I w rejestrze SREG. Bit ACI jest zerowany sprzętowo, gdy zostanie uruchomiony odpowiedni wektor obsługi przerwania. Alternatywnie bit ACI jest zerowany przez zapis logicznej jedynki do tego znacznika.
Gdy do bitu ACIE zostanie wpisana logiczna jedynka, włączane jest przerwanie z komparatora analogowego. Przy zapisie zera, przerwanie to zostaje wyłączone.
Gdy bit jest ustawiony, włączana jest funkcja Input Capture w timerze/liczniku 0, która będzie wyzwalana przez komparator analogowy. W tym przypadku, wyjście komparatora jest połączone
bezpośrednio z siecią logiczną Input Capture z wykorzystaniem
reduktora szumów oraz możliwością wyboru zbocza wyzwalającego
przerwania Input Capture dla timera/licznika 0. By komparator
mógł wyzwalać to przerwanie musi być ustawiony bit
ICIE0 w rejestrze maski przerwań timera/licznika
TIMSK0.
Gdy ten bit jest wyzerowany, nie istnieje połączenie pomiędzy
komparatorem analogowym a funkcją
Input Capture.
Bity te określają rodzaj zdarzenia z komparatora, które wyzwoli przerwanie. Poniższa tabela podaje ustawienia tych bitów:
| ACIS1 | ACIS0 | Tryb przerwania |
| 0 | 0 | Przerwanie z komparatora przy zmianie stanu wyjścia |
| 0 | 1 | Zarezerwowane. |
| 1 | 0 | Przerwanie z komparatora przy opadającym zboczu sygnału wyjściowego |
| 1 | 1 | Przerwanie z komparatora przy narastającym zboczu sygnału wyjściowego |
Przy zmianie bitów ACIS1/ACIS0 przerwanie z komparatora musi być wyłączone przez wyzerowanie bitu ACIE. W przeciwnym razie zmiana tych bitów może wyzwolić przerwanie.
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0x17 | - | - | - | - | ADC3D | ADC2D | ADC1D | ADC0D | DIDR0 |
| Zapis/Odczyt | O | O | O | O | Z/O | Z/O | Z/O | Z/O | |
| Wartość początkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Gdy dany bit jest ustawiony, to cyfrowy bufor wejścia na końcówce AIN1 (ADC1) / AIN0 (ADC0) jest wyłączony, a odpowiadający mu bit rejestru PIN będzie dawał odczyt zero. Gdy końcówka jest używana jako wejście analogowe i nie jest potrzebne jej wejście cyfrowe, wyłączenie to spowoduje mniejsze zużycie energii przez mikrokontroler.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.