logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8][C] - Nieprawidłowa praca wyświetlacza 7 segmentowego

wojtasXD 20 Mar 2016 20:03 930 4
REKLAMA
  • #1 15541045
    wojtasXD
    Poziom 9  
    Witam!

    Chciałem zbudować prosty licznik z ww. wyświetlaczem. Wyświetlacz miał liczyć od 00 do 09 tzn. miała zmieniać się tylko druga cyfra (jedności). Niestety na wyświetlaczu pokazują się dwie te same cyfry (obydwie się zmieniają).
    Sprawdzałem połączenia i są na 100% pewne, więc problem jest w programie - tutaj proszę o pomoc kogoś kto wskaże błąd w programie (dopiero się uczę...).

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    [atmega8][C] - Nieprawidłowa praca wyświetlacza 7 segmentowego
  • REKLAMA
  • #2 15541161
    vonar
    Poziom 28  
    Po pierwsze, nieprawidłowo sterujesz tranzystorami - operacja XOR za każdym razem tylko zmienia stan portu, a powinieneś najpierw oba wyłączyć, później włączyć wybrany. Po drugie, w przerwaniu oba bloki warunkowe wykonają się za każdym razem - najpierw zwiększasz zmienną wysw, a zaraz potem sprawdzasz ją drugi raz (a wtedy już ma wartość 1).
    Lepiej:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 15541227
    Samuraj
    Poziom 35  
    I na koniec wywal to dziwadło:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Wstawiając np coś takiego:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    I nie wiem czemu zadeklarowałeś argument liczba jako int skoro przyjmuje wartości od 0 do 9 tak więc pokrywa zakres zmiennej typu char
  • REKLAMA
REKLAMA