Witam.
Mam takie problem. Chcę sobie poćwiczyć zrobienie tzw bramy świetlnej na mikro, z wykorzystaniem INT1 i INT0. Bramy są zewnętrznymi urządzeniami, na nózki Atmegi podaję tylko sygnały logicznej 1 lub 0.
Mam taką sytuację:
- przerywam bieg pierwszej bramy, zostaje zliczona osoba
- jednoczesnie zostaje wylaczone przerwanie drugiego czujnika, na 1sekunde.
- po sekundzie zostaje wlaczone przerwanie od drugiego czujnika
- w druga strone jest analogicznie, tylko osoba zostaje odjeta ze zmiennej.
Realizuje to na przerwaniach: INT0, INT1 i Timerze1. Ale za nic nie mogę dojść co mam źle. Przechodzę przez obydwie bramy, zlicza mnie (2 czujnik nie działa) ale po równej sekundzie zostaje odjeta zmienna i wychodzi na 0. Oto kod:
natomiast w głównej pętli mam takie cos:
Deklaracja przerwań:
Jaki może być błąd? Ustawione są na zbocze opadające.
Pozdrawiam
Mam takie problem. Chcę sobie poćwiczyć zrobienie tzw bramy świetlnej na mikro, z wykorzystaniem INT1 i INT0. Bramy są zewnętrznymi urządzeniami, na nózki Atmegi podaję tylko sygnały logicznej 1 lub 0.
Mam taką sytuację:
- przerywam bieg pierwszej bramy, zostaje zliczona osoba
- jednoczesnie zostaje wylaczone przerwanie drugiego czujnika, na 1sekunde.
- po sekundzie zostaje wlaczone przerwanie od drugiego czujnika
- w druga strone jest analogicznie, tylko osoba zostaje odjeta ze zmiennej.
Realizuje to na przerwaniach: INT0, INT1 i Timerze1. Ale za nic nie mogę dojść co mam źle. Przechodzę przez obydwie bramy, zlicza mnie (2 czujnik nie działa) ale po równej sekundzie zostaje odjeta zmienna i wychodzi na 0. Oto kod:
Kod: C / C++
Kod: C / C++
natomiast w głównej pętli mam takie cos:
Kod: C / C++
Deklaracja przerwań:
Kod: C / C++
Jaki może być błąd? Ustawione są na zbocze opadające.
Pozdrawiam