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

[AT90S2313][avr-gcc] - Stoper - konfiguracja przycisków

pawelf1206 04 Sty 2013 18:03 2043 6
  • #1 04 Sty 2013 18:03
    pawelf1206
    Poziom 9  

    Witam
    Jestem dosyć początkującym w tym temacie. Próbuje skończyć stoper ale stanąłem na pewnym małym problemowym dla mnie punkcie. Program działa, odlicza, zeruje się, zatrzymuje i staruje ale... Obecnie START oraz RESET jest pod PD1 natomiast STOP jest pod PD0. Chciałbym aby START oraz STOP były pod jednym przyciskiem tylko nie mogę sobie z tym poradzić. Układ zamodelowałem w Proteusie. Sprawdzany również był na AVT3500.
    Pętla while na końcu.
    Bardzo proszę o pomoc.
    Pozdrawiam

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 6
  • #3 04 Sty 2013 19:15
    BlueDraco
    Specjalista - Mikrokontrolery

    Testowanie przycisków w main to nie jest dobry pomysł. Zrób to raczej w procedurze przerwania wyświetlacza. Program nieskomentowany - nie wiadomo jak często są zgłaszane przerwania wyświetlacza, więc trudno coś dalej konkretnie wymyślać. Ogólnie w co którymś przerwaniu wyświetlacza wypada wsunąć stan przycisku do bajtowej zmiennej, w której będą zapamiętane ostatnie stany. Maskujesz tę zmienną maską np. 4 bitową, i kiedy będzie w niej 0b1000 - reagujesz na naciśnięcie przycisku, na przemian zatrzymując i uruchamiając stoper.
    No i nie potrzebujesz dwóch przerwań.

    0
  • #4 06 Sty 2013 00:24
    pawelf1206
    Poziom 9  

    Zrobiłem to trochę po swojemu. Na symulatorze działa bardzo dobrze.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #5 06 Sty 2013 00:37
    BlueDraco
    Specjalista - Mikrokontrolery

    ślicznie, tylko nie uwzględniłeś drgań zestyków.

    0
  • #6 07 Sty 2013 20:07
    pawelf1206
    Poziom 9  

    Póki co specjalnie tego nie uwzględniłem ponieważ dostęp do AVT3500 mam dosyć ograniczony chciałbym na "własnej skórze" przekonać się jak to wygląda. Projekt mam oddać do sesji więc mam jeszcze chwilę. Póki co dziękuję za porady. Jeśli będę miał problem z wyeliminowaniem drgań, z pewnością napiszę.
    Pozdrawiam

    0
  • #7 10 Sty 2013 20:58
    pawelf1206
    Poziom 9  

    Witam ponownie.
    Projekt można powiedzieć udany. Sprawdziłem na AVT3500 i działa jak w Proteusie. Dodałem opóźnienie tak jak kolega wspomniał by wyeliminować drgania styków jednak raz na jakiś czas zdarza się, że zaistnieją. Bardzo możliwe, że przycisk dalej je powoduje ponieważ jest dosyć mało precyzyjny. Bardzo proszę o sprawdzenie poprawności kodu. Przy resecie nie eliminowałem drgań ponieważ nawet jeśli występują to nie przeszkadzają.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0