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

Bascom AVR: Jak wyodrębnić i modyfikować bity w bajcie?

Dyras 30 Mar 2006 16:39 1819 5
REKLAMA
  • #1 2475238
    Dyras
    Poziom 13  
    Posty: 90
    Ocena: 4
    Witam!

    Nie moge sie doszukac polecenia, lub sposobu w Bascomie-avr, ktory umozliwiłlby wyciagniecie ze zmiennej (bajtu) kilku bitow i po ukonczeniu operacji powtornie zapisanie zmodyfikowanych bitow do bajtu.
    Prosze o pomoc...
  • REKLAMA
  • #2 2475530
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    No widzę, że ktoś nie uważał na lekcji matematyki ;)
    Sposobów jest mnóstwo ... można dodawać, odejmować wielokrotności (potęgi) dwójki, można stosować operacje logiczne and, or, xor .... wszystko zalezy co chcesz osiągnąć lub jak szybko ma to działać.
  • REKLAMA
  • #3 2475548
    Dyras
    Poziom 13  
    Posty: 90
    Ocena: 4
    .. myslalem, ze jest do tego jakies 'tajemne' polecenie :)
    widze, ze bez nakladania masek, przesuwania sie nie obedzie..
  • REKLAMA
  • #4 2475709
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Dyras napisał:
    .. myslalem, ze jest do tego jakies 'tajemne' polecenie :)
    widze, ze bez nakladania masek, przesuwania sie nie obedzie..
    Jeśli odpowiednio napiszesz algorytm to może i się obejdzie, ale maskowanie to metoda która zawsze pomoże, ale nie musi być optymalna.
  • REKLAMA
  • #5 2475939
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Obejdzie się bez przesuwania i masek. Jeżeli mamy zmienną Z to wartość bitu b tej zmiennej można zmieniać odczytywać, zapisywać wysyłać do portu lub co komu się podoba poprzez Z.b . To tak jak Portb.1 itp.

    Odczyt bitu pierwszego to np. Wynik = Z.1 (bit zerowy to Z.0)
    Zapis to Z.1=1
    Warunek If Z.1 = 1 Then ...
    i tak dalej....

    Jeśli dotyczy to zmiennej Word to możliwe jest Z.15.
    Możliwa jest zmiana bitu w pętli (Z.x, gdzie x to zmienna licznikowa pętli)
    W ten sposób łatwo jest tworzyć zmienne konfiguracyjne do sterowania innymi układami np. przez I2C. Tak oprogramowałem syntezę częstotliwości na SAA1057.

    Za to między innymi lubię Bascoma.
  • #6 2925268
    Dyras
    Poziom 13  
    Posty: 90
    Ocena: 4
    Poradziłem sobie za pomoca nakładania maski na bajt.
    Dzieki za odpowiedzi.
REKLAMA