Skocz do zawartości

Przerwania na ADC


trotek

Pomocna odpowiedź

Nie ma przerwań dla każdej nóżki uC,to o czym mówisz to przerwanie zewnętrzne i jest oznaczone w AVRach jako INTx(dla mega8 jest to PD2 i PD3). Jest opcja zrobić coś takiego na pinach ADC pod warunkiem że nie wykorzystujesz modułu ADC,używa się do tego przerwania od komparatora.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Chciałbym wykorzystać to wejście ADC w swoim robocie do czujnika białej linii, i jeśli pojawi się biała linia żeby robot jechal w tył, a kiedy nie to normalnie jedzie do przodu. Jak wyglądają te przerwania od ADC? Robi się to na timerze czy jak?

Link do komentarza
Share on other sites

Robi się to na komparatorze.Do wejścia nieodwracającego możesz ustawić wewnętrzne 1.3V a do odwracającego którykolwiek pin ADC.Przy zmianie stanu pinu wywołasz przerwanie od komparatora.Czujnik wysyła sygnał cyfrowy,tak?

//Mówimy o atmega8?

Link do komentarza
Share on other sites

Strona 186 datasheeta.Używasz przerwania od komparatora.

analog-comparator-atmega8.jpg

Do wejścia + ustawiasz bandgap reference czyli jakieś 1.3V

Do - przez ADC multiplexer output podłączasz którykolwiek z pinów ADC.

Gdy napięcie na plusie czyli 1.3V jest wyższe niż na minusie(u ciebie PC2) to wywołuje się przerwanie.Po szczegóły odsyłam do dokumentacji,można skonfigurować jeszcze kilka przydatnych rzeczy.

Link do komentarza
Share on other sites

Nie, w ATmega8 nie możesz tak ustawić ADC by zgłaszał przerwanie tylko wtedy, gdy zmierzy coś powyżej lub poniżej jakiegoś progu. Możesz puścić ADC by mierzył w kółko któreś wejście i za każdym razem gdy ADC będzie miał nowy wynik dostaniesz przerwanie. Musisz go wtedy odczytać i programowo ocenić czy to, na co patrzy czujnik jest czarne czy białe. Są procesory w których taką ocenę progu może autonomicznie robić sam ADC.

Do oceny napięcia Kolega proponuje użycie komparatora ale jest to zupełnie inny blok niż ADC, choć może korzystać z wejść ADC. Komparator tylko porównuje napięcie wejściowe z jakimś napięciem odniesienia (np. podanym z potencjometru lub z wnętrza procesora) i odpowiada stanem 0 lub 1 (i ew. przerwaniem) gdy sprawdzane napięcie jest większe lub mniejsze niż próg. W procesorze komparator taki jest tylko jeden więc i jeden czujnik możesz obsłużyć gdy będziesz po prostu na przerwanie czekał. Jeśli zabierzesz się za to programowo, możesz "podsuwać" komparatorowi do oceny napięcia z kolejnych wejść ale zawsze dostaniesz odpowiedź 0 lub 1. Z ADC dostajesz wyniki w postaci liczb 0-1023.

Link do komentarza
Share on other sites

Trochę słabo u mnie z angielskim 😋

Muszę ustawić przerwanie jako

ISR (ADC_vect)

ale co dalej? Trzeba jakiś timer, preskaler albo coś ustawić?

[ Dodano: 16-03-2013, 00:34 ]

Więc nie powinienem dawać CNY70 na te wejścią tylko np. na INT1 i INT0?

Link do komentarza
Share on other sites

Musisz uruchomić ADC, ustawić, by wywoływało przerwanie po konwersji i włączyć globalną obsługę przerwań, następnie robisz obsługę przerwania tak jak napisałeś:

ISR(ADC_vect)
{
//cośtam
}
Link do komentarza
Share on other sites

Zobacz register description w rodziale o ADC w DSie twojego uC. To przerwanie nie będzie działać tak, że przy przekroczeniu progu zostanie wykonane, tylko po zakończeniu konwersji ADC (z dowolnego kanału)

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.