Witam
W projektowanym urządzeniu popełniłem pewien błąd, niestety płytki zostały już wytrawione i polutowane a znalezienie przyczyny nieprawidłowości zajęło mi dość sporo czasu, więc wolałbym uniknąć ponownego składania układu.
Mam kilka przycisków połączonych z bramką NAND. Wciśnięcie któregokolwiek generuje na wyjściu bramki stan wysoki, który dalej jest kierowany na INT0 (jak wiadomo przerwania są wywoływane przez stan niski na INT0)
Problem w tym, że po włączeniu zasilania w urządzeniu, na INT0 od razu pojawia się stan niski (z bramki NAND - bo żaden przycisk nie został wciśnięty) no i generowane jest przerwanie, które z kolei ustaje gdy wcisnę dowolny z przycisków (wtedy na INT0 pojawi się stan wysoki) wówczas wykonuje się główny blok programu.
Jak widać jest to sytuacja zupełnie przeciwna do pożądanej. Czy jest jakiś sposób na PROGRAMOWE wyeliminowanie tego błędu? IMHO najlepiej by było, gdyby udało mi się zmusić system przerwań do reakcji na stan wysoki na wejściu INT0.
Dodam, że próbowałem ustawić 'Config INT0 = Rising' ale nie wiele to pomogło.
Czy ktoś z Was ma jakieś pomysły? Będę wdzięczny za każdą podpowiedź, która uratuje mnie przed ponownym projektowaniem tego układu.
BTW czy istnieje jakiś program-symulator umożliwiający przetestowanie projektowanego układu? Chodzi oczywiście o bardziej skomplikowane rzeczy niż badanie stanu bramek logicznych na mrugających lampkach.
Szczytem marzeń jest jakiś pakiet w którym zaprojektuję układ oparty o mikrokontroler, następnie umożliwi mi on wirtualne wgranie firmware'u i testowanie tego.
Czy to tylko pobożne marzenia?
Pozdrawiam
crooveck
W projektowanym urządzeniu popełniłem pewien błąd, niestety płytki zostały już wytrawione i polutowane a znalezienie przyczyny nieprawidłowości zajęło mi dość sporo czasu, więc wolałbym uniknąć ponownego składania układu.
Mam kilka przycisków połączonych z bramką NAND. Wciśnięcie któregokolwiek generuje na wyjściu bramki stan wysoki, który dalej jest kierowany na INT0 (jak wiadomo przerwania są wywoływane przez stan niski na INT0)
Problem w tym, że po włączeniu zasilania w urządzeniu, na INT0 od razu pojawia się stan niski (z bramki NAND - bo żaden przycisk nie został wciśnięty) no i generowane jest przerwanie, które z kolei ustaje gdy wcisnę dowolny z przycisków (wtedy na INT0 pojawi się stan wysoki) wówczas wykonuje się główny blok programu.
Jak widać jest to sytuacja zupełnie przeciwna do pożądanej. Czy jest jakiś sposób na PROGRAMOWE wyeliminowanie tego błędu? IMHO najlepiej by było, gdyby udało mi się zmusić system przerwań do reakcji na stan wysoki na wejściu INT0.
Dodam, że próbowałem ustawić 'Config INT0 = Rising' ale nie wiele to pomogło.
Czy ktoś z Was ma jakieś pomysły? Będę wdzięczny za każdą podpowiedź, która uratuje mnie przed ponownym projektowaniem tego układu.
BTW czy istnieje jakiś program-symulator umożliwiający przetestowanie projektowanego układu? Chodzi oczywiście o bardziej skomplikowane rzeczy niż badanie stanu bramek logicznych na mrugających lampkach.
Szczytem marzeń jest jakiś pakiet w którym zaprojektuję układ oparty o mikrokontroler, następnie umożliwi mi on wirtualne wgranie firmware'u i testowanie tego.
Czy to tylko pobożne marzenia?
Pozdrawiam
crooveck
