TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Pytanko z techniki cyfrowej... hmm elektroniki - szczegoly w srodku (dosc dlugie) , waski 27/12/05 12:17 Witam
Niestety nie udalo mi sie zmiescic pytania w temacie - nie bijcie :)
Co do mojego problemu - sytuacja jest nastepujaca. Budujemy na zaliczenie na studiach robota sterowanego przez LPT. W zasadzie caly robot juz dziala (no, wymaga jeszcze pewnych przerobek ale mniejsza z tym).
Generalnie chodzi o to, ze wczytuje stan robota przez LPT, program odpowiednio reaguje i na LPT wystawiam odpowiednie dane. Samo sterowanie dziala bez zarzutu, jednak jak dotychczas jedynie w trybie pollingu (odpytywania).
Docelowo robot ma wykorzystywac przerwanie sprzetowe. Sam program obslugujacy przerwanie napisalem i sprawdzilem (poprzez zmostkowanie wyjscia D7 bodajze z LPT z wejsciem ACK). Takze sama obsluga przerwan jest ok - gdy na ACK mamy zbocze (narastajace lub malejace - w zaleznosci od komputera na ktorym program jest wykonywany!) nastepuje wywolanie procedury obslugi przerwania.
No i teraz sedno sprawy... Mamy tylko jedno wejscie ACK w LPT, a chce generowac przerwania gdy ktorykolwiek z dwoch 'wyjsc' robota sie zmieni.
Czyli generalnie potrzebuje jak najprostszego pomyslu na uklad, gdzie jakakolwiek zmiana jednego z dwoch wejsc powoduje wygenerowanie impulsu:
_______|---|_______
W tym momencie nastapi obsluga przerwania i robot zareaguje jak trzeba.
Co do techniki wykonania - w zasadzie moze byc dowolna :) Wazne zeby uklad byl zgodny z TTL, tzn interpretowal odpowiednie wysokosci napiec jako stan wysoki lub niski.
Z gory dzieki za jakiekolwiek sugeste!SNAFU
Situation Normal, All Fucked Up - z tego co mówisz - potrzebujesz układu... , XTC 27/12/05 12:27
OR ...
weź 2 układy 7432 - na wejścia jednego podłącz wszystkie linie danych - wyjścia podłącz do wejść 2-ch bramek drugiego scalaka - wyjścia tych bramek na wejście jednej - wyjście tej jednej da Ci sygnał którego szukasz.
Ja to bym zrobił w sumie inaczej - jedno przerwanie i potem danymi identyfikowane z jakiej okazji przyszło - coś jak komunikacja szeregowa.Linux - tak sobie jeszcze raz czytam... , XTC 27/12/05 12:31
i widzę, że chcesz aby "zmiana stanu dowolnego wejścia" powodowała Ci generację impulsu ...
Prosty układ logiczny do tego nie przypasuje a jakiś inny ultra-prosty nie przychodzi mi do głowy.
Jeśli wyjdzie Ci układ powyżej 2-ch kości to taniej będzie kupić mały mikrokontroler i napisać do niego odpowiedni program.Linux - no wlasnie o to chodzi... , waski 27/12/05 12:46
ze jakos nie moge znalezc prostego rozwiazania :/
A co do mikrokontrolera to bedziemy sie bawic w programowanie 8051 albo jakiegos jego klona, bo ma powstac takze druga wersja robota, dzialajaca bez komputera - wtedy bedzie mikrokontroler i zasilanie z bateryjek...
no, ale dzieki za checi :)SNAFU
Situation Normal, All Fucked Up
- w takim razie chyba zrobimy to inaczej... , waski 27/12/05 13:50
Robot ma jezdzic po okreslonej trasie, wiec chcialem zeby przerwania byly generowane zarowno kiedy 'zjezdza' jak i 'wjezdza' spowrotem na trase. Stad to 'jakakolwiek zmiana jednego z dwoch wejsc'...
Skoro jednak tego prosto sie nie da zrobic, to bedzie dzialac tak ze przerwania beda tylko jak zjezdza z trasy - do tego starczy zwykly NAND / NOR. Jak zjedzie, to sie go nakieruje spowrotem i bedzie jechal az znow nie wyjedzie :) Czyli zygzakiem jak pijany, ale wazne zeby trase przejechal :)
W kazdym razie jesli ktos ma jakis pomysl jeszcze - niech sie nie krepuje ;)SNAFU
Situation Normal, All Fucked Up - użyj potęgi XOR ;) , szpieg Szoguna 27/12/05 22:15
Recepta na układ generujący impuls przy zmianie stanu wejścia:
na pierwsze wejście 2-wejściowej bramki xor dajesz bezpośrednio swój sygnał, a na drugie podajesz go przez układ RC (całkujący) - R między wejściem układu a drugim wejściem bramki, C między drugim wejściem bramki a masą. Przy każdej zmianie stanu na wejściu będziesz miał dodatni impuls na wyjściu.
W twoim układzie zaryzykował bym użycie trzeciej bramki do "zsumowania" sygnałów z dwóch takich układów.
Jeśli coś jest niejasne - pytajpiwo ... hmmm - to pewnie się pije :) - można w sumie i tak... , XTC 27/12/05 22:48
tak zrobiono w typowym kablu VGA2Euro z impulsami synchronizacji...
Ja jakoś się nie mogę przekonać do takich rozwiązań z "układami całkującymi"... prędzej czy później zacznie się zabawa w "dostrajanie" do szybkości działania...
Jak z kolei widzę taki układ to jak mi się ilość kostek rozrasta to naprawdę uważam, że dowolny mikrokontroler załatwi sprawę elastyczniej (dowolna modyfikacja), szybciej (mniejsze pcb) i często taniej. Trzeba się tylko do nich przekonać, że nie są specjalnym "narzutem"...
Skoro Wąski i tak myśli o późniejszym sterowaniu tego z własnego uC - to chyba najlepsza chwila aby zrobić prosty układ z dowolnym uC...
Najpierw prosty program robiący "interfejs" a potem sterowanie w uC...Linux - Zgadzam się, że nie jest to uniwersalne rozwiązanie , szpieg Szoguna 27/12/05 23:16
ale spełnia założenia. Dynamika zjawiska jest niewielka w porównaniu do szybkości reakcji komputera (dlatego pozwoliłem sobie zaproponować "sumowanie" impulsów na kolejnej bramce xor)
Wydaje mi się, że moja wersja jest wystarczająco dobra przy takich założeniach.
Kwestia modyfikacji i robota autonomicznego - tylko własny sterownik.
Pozdrawiampiwo ... hmmm - to pewnie się pije :)
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|