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

RC5 - prędkości wyświetlania. Voldown działa ponad dwa razy szybciej.

Stuart 20 Sty 2006 10:00 1330 1
REKLAMA
  • #1 2198680
    Stuart
    Poziom 12  
    Posty: 147
    Ocena: 11
    Witam,
    Zamieszczam kodzik , który jest częścią wiekszego programu ale samodzielnie też działa. Po wykrojeniu go z programu matki to co mnie interesuje zachowuje się tak samo, czyli problem leży gdzieś tu. Chodzi mianowicie o szybkość dekrementacji/inkrementacji cyfry i odwzorowania tego na wyświatlaczu led. W zależności od komendy nastepuje albo zwiekszanie liczby albo zmniejszanie (podprogramy Volup i Voldown). Wszystko pieknie tyle, że w przypadku Voldown dzieje sie to ponad 2 razy szybciej - odwzorowanie na wyświetlaczu. Podprogramy te mają identyczny układ. Próbowałem zamieniać komendy, kolejność odwółań do tych podprogramów, kolejność samych podprogramów i dalej to samo. Dodam, że ta szybsza jest zadowalająca. Programik wykorzystuje multipleksowanie wyświetlacza na przerwaniu i odbiów RC5 też na przerwaniu. podprogramy wyglądają nastepująco:

    Volup: 'zmniejszanie wzmocnieni o 0.5 dB
    If D = 0 Then '
    If B = 0 Then '
    If C = 0 Then '
    Goto Koniec1 '
    End If '
    End If '
    D = 5 '
    If C = 0 Then '
    C = 9 '
    If B > 0 Then '
    Decr B '
    End If '
    Else '
    Decr C '
    End If '
    Else '
    D = 0 '
    End If '
    '
    Koniec1:
    Return
    '/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    '/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    Voldown: 'zmniejszanie wzmocnieni o 0.5 dB
    If D = 5 Then '
    If B = 9 Then '
    If C = 5 Then '
    Goto Koniec '
    End If '
    End If '
    D = 0 '
    If C = 9 Then '
    C = 0 '
    If B < 9 Then '
    Incr B '
    End If '
    Else '
    Incr C '
    End If '
    Else '
    D = 5 '
    End If '
    '
    Koniec:
    Return
    Załączniki:
    • listing1.txt (11.4 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 2216655
    Stuart
    Poziom 12  
    Posty: 147
    Ocena: 11
    Wyjdzie na to, że sam ze soba gadam :)
    Przeniosłem pobranie kodu RC5 z przerwania do pętli głównej - pomogło. Kolejny dowód, że na przerwaniu komenda GetRC5 jest chimeryczna.
REKLAMA