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

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

braders2 15 Paź 2014 20:14 2016 5
REKLAMA
  • #1 14044456
    braders2
    Poziom 11  
    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 / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 14044648
    mi14chal
    Poziom 28  
    Słyszałeś o wyświetlaniu multipleksowym?
  • REKLAMA
  • #3 14044680
    BlueDraco
    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.
  • REKLAMA
  • #4 14044762
    braders2
    Poziom 11  
    oczywiście że słyszałem o przerwaniach i wyświetlaniu multipleksowanym, ale cwiczenie miało być wykonane bez zastosowania timerow.
  • REKLAMA
  • #5 14046847
    dondu
    Moderator na urlopie...
    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 / 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.
  • #6 14048092
    BlueDraco
    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.
REKLAMA