Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

2 źródła przerwań na 1 pinie (ATMEGA8)

05 Wrz 2007 18:32 1376 9
  • Poziom 16  
    Witam,

    Czy ktoś zna sposób, aby pod jeden pin przerwania podłączyć dwa urządzenia (np. przycisk i odbiornik podczerwieni) w taki sposób, aby się wzajemnie nie zakłócały, a jednocześnie działały?
  • Poziom 24  
    Jeśli dasz dodatkowo pin do identyfikacji z którego urządzenia przyszło przerwanie i w obsłudze przerwania sprawdzisz ten pin to będzie ok.
  • Poziom 12  
    Polecam tak jak przedmówca, możesz zrobić tak:
    na bramkę END dasz te dwa sygnały i te dwa sygnały podepniesz do oddzielnych pinów uP, natomiast wyjście z END dasz do np INT0

    nie polecam podpinania dwóch wyjść bezpośrednio do siebie ponieważ możesz jedno wyjście spalić
  • Poziom 16  
    A bez bramek się nie uda? Zależy mi na miniaturyzacji i chyba już mi się nic nie uda wepchnąć na płytkę.
    W dokumentacji ATmegi, w opisie portów ogólnego przeznaczenia jest coś takiego jak tri-state. Nie bardzo wiem na czym to polega, ale nazwa sugeruje, że właśnie czegoś takiego szukam. Chociaż wydaje mi się to trochę dziwne, bo wartość pinu może mieć 0 lub 1.
  • Poziom 23  
    Tri-state nie oznacza, że logika nagle rozpoznaje 3 stan. Bo niby jaki? Ten trzeci stan to z regóły stan wysokiej impedancji, w którym pin nie jest podciągany ani do Vcc ani do GND. I o ile wiem dotyczy to sytuacji w której pin pracuje jako wejściowy.
    Co do stosowania bramek i wykorzystania dodatkowego pinu do identyfikacji to mija się to z celem, bo nie zaoszczędzisz tym sposobem tego pinu.
  • Poziom 16  
    Dodatkowy pin teoretycznie mógłbym wykorzystać, ale dość niechętnie, bo kolejna ścieżka to już będzie naprawdę cud. Na dodatkowe układy nie mam co liczyć.
    W zasadzie to nawet jakoś przebolałbym ten dodatkowy pin do identyfikacji, ale jak już napisał propa - boje się, że coś się spali. Problem ogólnie polega na tym, że mam 3 źródła przerwań, a 2 piny które mogą być wykorzystane jako przerwania. Jeśli chodzi o zwykłe piny, to znajdę coś wolnego.
  • Poziom 27  
    Jak rozumiem ma być czytane przerwanie z klawiatury ( miedzy innymi ) , a czemu nie zrobić przerwania z jakiegoś timera które będzie cyklicznie sprawdzało pin podłączony z tym klawiszem ( przyciskiem ).
  • Poziom 12  
    Witam.
    Można zrobić tak jak kolega pisze na timerze albo choć wiem że niechętnie chcesz zastosować dodatkowy układ, ale w twojej sytuacji proponowałbym zastosować jakiś koder priorytetowy np. '147 http://www.tranzistoare.ro/datasheets/185/332134_DS.pdf.
    Możesz podłączyć do 8 urządzeń a w uP wykorzystujesz 3 linie z numerem przerwania i 1 na samo zgłoszenie przerwania łącznie 4.
    A w twoim przypadku masz 3 urządzenia to wykorzystujesz 2 linie numeru i 1 na zgłoszenie przerwania do uP.
  • Poziom 26  
    orson-pl napisał:
    A bez bramek się nie uda? Zależy mi na miniaturyzacji i chyba już mi się nic nie uda wepchnąć na płytkę.

    Można sygnały "odciąć mądrze" poprzez diody. Trzy elementy bierne może jakoś upchasz.
  • Poziom 16  
    RSP napisał:
    Jak rozumiem ma być czytane przerwanie z klawiatury ( miedzy innymi ) , a czemu nie zrobić przerwania z jakiegoś timera które będzie cyklicznie sprawdzało pin podłączony z tym klawiszem ( przyciskiem ).

    Timera też wolałbym nie używać. Zamierzam użyć tych przerwań, żeby procesor przez cały czas w trybie Power-down i był wybudzany tylko po to, żeby obsłużyć przerwania.
    Konkretnie - zamierzam podłączyć odbiornik IRDA, przycisk i przerwanie z zegara RTC. Zastanawiam się czy nie podłączyć odbiornika IRDA pod zwykły pin i obsługiwać przez timer po wejściu w tryb IRDA.

    starob napisał:
    Można sygnały "odciąć mądrze" poprzez diody. Trzy elementy bierne może jakoś upchasz.

    Mógłbyś to rozwinąć? 3 diody może bym zmieścił.