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

Attiny2313 - [BASCOM] - multipleksowanie 2 x LED 7 seg 74HC595

dreslak 28 Lut 2013 14:46 2382 2
  • #1 11998374
    dreslak
    Poziom 17  
    Witam,

    Z racji ograniczonej ilości portów, zostałem zmuszony do multipleksowania dwóch wyświetlaczy LED 7 segmentowych poprzez rejestr 74HC595. Na początku dla testów napisałem krótki programik. Program działa, lecz posiada jedno "ale". Mianowicie gdy w pętli głównej nie ma "waitms" wyświetlana liczba jest nieczytelna ponieważ zbyt szybko następuje wyświetlanie kolejnych cyfr. Myślę sobie: poczekam parę milisekund po każdej cyfrze. Wstawiłem w pętli głównej waitms 1 i jakie jest moje zdziwienie że po dodaniu tej linijki, liczba wyświetlana zostaje zwiększona co ok 0,5s. Co może być przyczyną takiego błędnego opóźnienia ?

    ps. Fusebity ustawione poprawnie.

    kod:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 11999246
    Konto nie istnieje
    Poziom 1  
  • #3 11999585
    dreslak
    Poziom 17  
    Owszem w konfiguracji Timera głupi błąd, ale ku mojemu zdziwieniu przerwanie działało.

    W liczeniu czasu chyba się koledze przecinek przestawił. Przerwanie w teorii kompilatora bascom trwa ok 0,16ms. W praktyce: po dodaniu w przerwaniu " toggle portb.0" częstotliwość generowanego przebiegu prostokątnego to 3,289kHz więc przerwanie wykonuje się z częstotliwością 6,578kHz, więc czas przerwania to 0,152ms. Przerwanie nie ma wpływu na wyświetlanie wartości. Co najwyżej gdy będzie zbyt wolno migał by wyświetlacz. Oczywiście przerwanie jest wykonywane raz za razem.

    Po wstawieniu "toggle portb.1" w pętle główną częstotliwość zmiany portu wynosi zaledwie 0,7 Hz ( pętla główna wykonuje się z prędkością 0,7s( co jest dziwne)), natomiast gdy usunę wait wówczas port zmienia się z częstotliwością 18Hz (czas wykonania pętli głównej to 0,028s) Różnica powinna wynosić 1ms, a tak nie jest.

    Przyczyną jest zbyt częste wywoływanie przerwania.
REKLAMA