matt90 Napisano Marzec 30, 2013 Udostępnij Napisano Marzec 30, 2013 Mam podłączone czujniki Sharpa na wejściach ADC, czy program powinien być napisany tak, że po zauważeniu przeciwnika następuje przerwanie od ADC czy normalnie zrobić to pętlą if? Jeśli przez przerwanie ADC to proszę o jakieś porady jak to zrobić bo nigdy tego nie robiłem, czytam datasheet ale nie wiele mi to rozjaśnia całą sytuację 😕 Link do komentarza Share on other sites More sharing options...
davidpi Marzec 30, 2013 Udostępnij Marzec 30, 2013 Jeżeli się nie mylę to przerwanie od ADC występuje w momencie zakończenia konwersji. Niezależnie od tego jaki jest wynik tej konwersji. W przerwaniu musiałbyś sprawdzić odczyt i go zinterpretować. Więc niewiele się to różni od ciągłego oczekiwania w pętli. A może by tak podpiąć Sharpy do komparatora analogowego??? Link do komentarza Share on other sites More sharing options...
matt90 Marzec 30, 2013 Autor tematu Udostępnij Marzec 30, 2013 W przypadku Atmega8 wejścia komparatora to AIN0 i AIN1, mam rację? Jeśli tak to nie mogą tam być sharpy bo w tym miejscu mam podpięty mostek. Więc nie ma większej różnicy w czasie czy wszystko napiszę pętlą if czy sharpy będą wywoływać przerwanie? Link do komentarza Share on other sites More sharing options...
davidpi Marzec 30, 2013 Udostępnij Marzec 30, 2013 Chodzi o to, że musisz ciągle wykonywać pomiar ADC i analizować wynik, bo nie wiesz kiedy pojawi się przeciwnik. Szarpy nie mogą wyzwalać przerwania, bo niby jak??? Gdybyś podłączył czujnik do komparatora analogowego, to on sam ciągle by analizował napięcie i w momencie pojawienia się przeciwnika zgłosił by przerwanie. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
matt90 Kwiecień 6, 2013 Autor tematu Udostępnij Kwiecień 6, 2013 Mam czujnik sharp analogowy, podłączony pod ADC0 jak w kodzie napisać zeby dawal sygnal kiedy zobaczy przeszkode? Nie interesuje mnie pomiar odległości tylko samo sygnalizowanie ze widzi przeszkode? Napisałem coś takiego do obługi tego sharpa ale nie wiem co dalej, i czy to jest w ogóle dobrze #include <avr/io.h> #include <avr/interrupt.h> int tablica[]; int c=0; int a=0; int wynik=0; ISR(ADC_vect) { // nie wiem co tutaj powinno być } int main(void) { /*########## ADC- sharp ################*/ ADMUX |= (1<<REFS0);// Vref na 5V; 100nF do masy ADCSRA |= (1<<ADEN); //włączamy przetwornik ADCSRA |= (1<<ADPS1) | (1<<ADPS2) | (1<<ADPS0); //preskaler=128 ADCSRA |= (1<<ADIE); //przerwanie adc while(1) { // nie wiem co tutaj powinno być } } __________ Komentarz dodany przez: Sabre Scaliłem z poprzednim tematem. Nie rozumiem po co śmieciłeś nowym. Skoro nie potrafisz napisać podstawowego programu to zacznij od jakiejś książki albo od kursu z forum. Link do komentarza Share on other sites More sharing options...
davidpi Kwiecień 6, 2013 Udostępnij Kwiecień 6, 2013 Tydzień temu założyłeś taki sam temat, w którym Ci doradzałem. Więc czemu zakładasz nowy i pytasz o to samo?? Link do komentarza Share on other sites More sharing options...
matt90 Kwiecień 6, 2013 Autor tematu Udostępnij Kwiecień 6, 2013 Bo z tamtego nic sie nie dowiedziałem, podłączyłem sharpa pod wejście ADC, jest to sharp analogowy, czy to co napisałem jest dobrze, i jak napisać to oczekiwanie na przeciwnika i w momencie pojawienia się żeby wystąpiło przerwanie? Link do komentarza Share on other sites More sharing options...
zbizeb Kwiecień 6, 2013 Udostępnij Kwiecień 6, 2013 Musisz sprawdzić jaki wynik odczytasz z ADC przy odległości jaka cię interesuje. Potem w pętli sprawdzasz czy wynik jest mniejszy i jeżeli jest to robot wykonuje akcję. To wszystko. Link do komentarza Share on other sites More sharing options...
matt90 Kwiecień 6, 2013 Autor tematu Udostępnij Kwiecień 6, 2013 no okej, ale jak to napisać 🙂 Link do komentarza Share on other sites More sharing options...
osmial Kwiecień 6, 2013 Udostępnij Kwiecień 6, 2013 Jak nie wiesz jak coś takiego napisać to może lepiej kup sobie jakiś termometr analogowy i spróbuj najpierw odczytać temperaturę ? Idea ta sama... Link do komentarza Share on other sites More sharing options...
matt90 Kwiecień 6, 2013 Autor tematu Udostępnij Kwiecień 6, 2013 Ale po co mam kupować termometr skoro tutaj wygląda to bardzo podobnie 🙂 Proszę tylko o jakieś porady, może kawałki kodu jak takie coś zrobić Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »