Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

bascom: bajt -> bity ?

Dyras 30 Mar 2006 16:39 1381 5
  • #1 30 Mar 2006 16:39
    Dyras
    Poziom 12  

    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...

    0 5
  • #2 30 Mar 2006 17:53
    mzielin
    Poziom 22  

    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ć.

    0
  • #3 30 Mar 2006 17:57
    Dyras
    Poziom 12  

    .. myslalem, ze jest do tego jakies 'tajemne' polecenie :)
    widze, ze bez nakladania masek, przesuwania sie nie obedzie..

    0
  • #4 30 Mar 2006 18:38
    elektryk
    Poziom 42  

    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.

    0
  • #5 30 Mar 2006 19:53
    M. S.
    Poziom 34  

    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.

    0
  • #6 17 Sie 2006 18:40
    Dyras
    Poziom 12  

    Poradziłem sobie za pomoca nakładania maski na bajt.
    Dzieki za odpowiedzi.

    0