[BASCOM] Przerwanie od ADC - na czym polega?
[BASCOM] Przerwanie od ADC - na czym polega?
Wiadomo że niektóre mikrokontrolery oferują przerwanie od adc. Na czym ono polega?
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.
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.
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?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.
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 :
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:
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 :
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:
jest punkt 3.matrix pisze:Jak za każdym razem ustalić nowy próg zadziałania?