[BASCOM] Przerwanie od ADC - na czym polega?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

[BASCOM] Przerwanie od ADC - na czym polega?

Post autor: matrix » 03 mar 2013, 8:01

Wiadomo że niektóre mikrokontrolery oferują przerwanie od adc. Na czym ono polega?

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 03 mar 2013, 11:23

To porostu sygnał sygnalizujący koniec pomiaru.
Pozwala to np. napisać program wielowątkowy, gdzie w czasie prowadzenia pomiaru przez przetwornik ADC, procesor wykonuje inne zadania, jak wstępne przetwarzanie danych z poprzedniego pomiaru itp.
Ogólnie chodzi o to że angażując do działania przerwania, nie trzeba tracić cyklów procesora na sprawdzanie czy takowe już się skończyło, bo jest to sygnalizowane sprzętowo.
Bardzo przydatne jak program który piszemy, ma cechy systemu operacyjnego.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 03 mar 2013, 23:36

Dziękuję. Myślałem że przerwanie od ADC wywoływane jest kiedy zmieni się napięcie a wejściu ADC.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 11 mar 2013, 11:47

matrix pisze:Myślałem że przerwanie od ADC wywoływane jest kiedy zmieni się napięcie a wejściu ADC.
Taką funkcję ma komparator analogowy zawarty w mikrokontrolerze. Sygnalizuje przerwaniem przekroczenie określonego stanu napięcia porównując napięcia na dwóch wejściach komparatora.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 mar 2013, 16:36

dondu pisze:Taką funkcję ma komparator analogowy zawarty w mikrokontrolerze. Sygnalizuje przerwaniem przekroczenie określonego stanu napięcia porównując napięcia na dwóch wejściach komparatora.
Nie żebym się wymądrzał, ale oczywiście wiem jak działa komparator. Natomiast jeśli chodzi o wspomniany komparator zawarty w strukturze mikrokontrolera. Co będzie jeśli moje napięcie wejściowe będzie się co jakiś czas zmieniać? Jak za każdym razem ustalić nowy próg zadziałania?

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 11 mar 2013, 16:47

matrix pisze:Co będzie jeśli moje napięcie wejściowe będzie się co jakiś czas zmieniać? Jak za każdym razem ustalić nowy próg zadziałania?
Komparator daje sporo możliwości, ale najpierw musimy wiedzieć, o którym mikrokontrolerze rozmawiamy.

Awatar użytkownika
matrix
Użytkownik
Posty: 1796
Rejestracja: 15 mar 2006, 5:21
Lokalizacja: Sochaczew
Kontakt:

Post autor: matrix » 11 mar 2013, 17:32

Rozważania są czysto teoretyczne. Wiedza dla wiedzy.

Awatar użytkownika
dondu
Użytkownik
Posty: 211
Rejestracja: 24 maja 2005, 9:47
Lokalizacja: Śląskie
Kontakt:

Post autor: dondu » 11 mar 2013, 17:54

W takim razie na przykładzie ATmega8 możliwości są następujące:

1. Ustalenie stałego napięcia (progu) o wybranej wartości na pinie AIN1 (wejście odwracające) np. za pomocą dzielnika rezystorowego. Przerwanie może być generowane gdy:
- napięcie na AIN0 będzie przechodziło przez próg w dowolnym kierunku,
- napięcie na AIN0 będzie przechodziło przez próg w dół (zbocze opadające),
- napięcie na AIN0 będzie przechodziło przez próg w górę (zbocze narastające).

2. Można wykorzystać przełącznik kanałów wejściowych ADC i podłączyć go do komparatora:
dla przykładu rysunek ze sterownika trójfazowego silnika BLDC :

Obrazek

W ten sposób komparatorem można sprawdzać wiele sygnałów.


3. Można sterować wejście odwracające AIN1 sygnałem PWM z wyjścia timera poprzez filtr dolnoprzepustowy. W tym przypadku można dowolnie za pomocą programu ustawiać poziom napięcia na pinie AIN1 przez co dowolnie zmieniać próg przełączenia komparatora.

W przypadkach 2 i 3 oczywiście przerwania można uzyskać tak jak w przypadku 1.

Nieco przykładów: http://mikrokontrolery.blogspot.com/201 ... ogowy.html

Odpowiedzią na Twoje pytanie przy wykorzystaniu komparatora:
matrix pisze:Jak za każdym razem ustalić nowy próg zadziałania?
jest punkt 3.

ODPOWIEDZ