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.

ATmega32 - ATmega32 Program licznik 0-99 na wyświetlaczu 7-segmentowym

15 Paź 2014 20:14 1485 5
  • Poziom 10  
    Zadanie polega na stworzeniu na wyświetlaczu 7 segmentowym licznika liczącego od 0 do 99. Na początku wyświetlacz LED[1] ma wyświetlać po kolei od 0 do 9 liczby jedności (LED[0] odpowiedzialny za część dziesiętną ma być wyłączony), następnie mam dołączyć kolejny wyświetlacz (nie wcześniej,) który bedzie wyświetlał części dziesiętne. Mój problem polega na tym, że po dołączeniu wyświetlacza LED[0] zamiast otrzymać efekt wyświetlenia jednolitej liczby to część dziesiętna mruga. Jak to poprawić?


    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 28  
    Słyszałeś o wyświetlaniu multipleksowym?
  • Specjalista - Mikrokontrolery
    Poszukaj haseł: "wyświetlacz multipleksowany" i "przerwanie timera". Kod, kt'óry napisałeś, daje zmienną jasność obu cyfr i "duchy", czyli cienie cyfr na niewłaściwych pozycjach.
  • Poziom 10  
    oczywiście że słyszałem o przerwaniach i wyświetlaniu multipleksowanym, ale cwiczenie miało być wykonane bez zastosowania timerow.
  • Moderator Mikrokontrolery Projektowanie
    braders2 napisał:
    Mój problem polega na tym, że po dołączeniu wyświetlacza LED[0] zamiast otrzymać efekt wyświetlenia jednolitej liczby to część dziesiętna mruga.

    Dzieje się tak dlatego, że w tym przypadku następują po sobie bardzo szybko dwie instrukcje PORTB =

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Efekt jest taki, że na ułamk sekundy włączasz LED 0, a na nieco dłużej LED 1.
    Stąd masz nierówne czasy wyświetlania tym bardziej gdy odblokujesz opóźnienia.
    Pomijam już fakt, czy LED0 jest w stanie w ogóle się załączyć (by był widoczny) w tak krótkim czasie.

    Generalnie opis problemu nie bardzo pasuje do przedstawionej wersji kodu.
  • Specjalista - Mikrokontrolery
    Wyświetlania multipleksowanego NIE ROBI się bez użycia timerów. NIGDY - bo takie wyświetlanie nie ma szans poprawnie działać. Gratulacje dla tego, kto wymyślił to zadanie - sam zapewne nie zaliczyłby projektu wyświetlacza.