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

AVR GCC wpis szeregowy MBI5029GD

mas24 05 Lis 2014 07:37 711 4
REKLAMA
  • #1 14103290
    mas24
    Poziom 16  
    Witam,

    Napisałem programik do wpisu szeregowego. Używam dwóch 16-bitowych rejestrów z zatrzaskiem MBI5029GD i steruję 32 diodami LED. Jak wpiszę poniższy program, to zaświeca się tylko pierwsze 16, pozostałe 16 milczy. Wymieniłem układ, to samo. Podobna procedurka w Bascomie zaświeca wszystkie LEDy.

    Dlaczego zaświecane jest tylko pierwsze 16 sztuk?

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


    Doszedłem do tego, że składnia:

    if (LDANE & (1 << i))

    działa tylko do 16 bitów.
  • REKLAMA
  • #2 14103379
    tadzik85
    Poziom 38  
    typ podstawowy?

    '1' jest typu int (16bit)
  • REKLAMA
  • #3 14103657
    mas24
    Poziom 16  
    Czyli tutaj jest wąskie gardło.
    Jak to wiec zmienić?

    W międzyczasie testuje wpis 2x16 bitów, ale to trochę więcej kodu.
  • REKLAMA
  • Pomocny post
    #4 14103668
    vonar
    Poziom 28  
    mas24 napisał:
    Jak to wiec zmienić?

    Użyć dłuższego typu...

    ...na przykład zamieniając 1 na 1UL.
  • #5 14103758
    mas24
    Poziom 16  
    Teraz działa dobrze, dzięki :)
REKLAMA