bit işlemleri

Başlatan armsistem, 17 Nisan 2012, 23:53:26

armsistem

17 Nisan 2012, 23:53:26 Son düzenlenme: 17 Nisan 2012, 23:58:45 armsistem
Arkadaşlar merhaba ; keilde port tanımlama bit işlemlerini öğrenmeye çalışıyorum
Aşağıdaki anlatımda eksiklikleri yanlış ve doğruları yazarsanız sevinirim.

unsigned char deger
,b1,b2,b3,b4 ;  // 1 byte 8 bitlik bir değer
deger='10101010';   // bu değeri alıp 4 ' bölücem yani 
b1=(deger&c0); 10101010 11000000 100000000
b2
=(deger&30); 10101010 00110000 001000000
b3
=(deger&c);  10101010 00001100 000001000
b4
=(deger&3);  10101010 00000011 000000010

Aslında yukarıda yapmak istediğim deger değişkeninin ikişer bitini almak,
bu konu hakkında yardımcı olursanız sevinirim.

10101010
12345678

b1=10    -->1.2.bit
b2=10    -->3.4.bit
b3=10    -->5.6.bit
b4=10    -->7.8.bit


Daha sonra bu degerleri istediğim portlara dağıtmak diyelimki portlarım aşağıda ama
porta'nın 3 ve 4. bitini uart0 için kullanıyorum 7 ve 8. bitinide başka bir şey için
portb'nin de 1,2,3,4. bitinide başka bir şey için yani kullana bileceğim portlar

        12345678
porta 0b00000000
        12345678
portb 0b00000000



kullanacağım portlar aşağıda
porta 1-2-5-6
portb 5-6-7-8

bu şekilde olabilirmi veya

porta=(deger&c0)<<1;
porta=(deger&30)<<5;
portb=(deger&c)<<5;
portb=(deger&3)<<7;

bu şekilde

porta=(deger&c0)<<1 | porta=(deger&30)<<5;
portb=(deger&c)<<5 |portb=(deger&3)<<7;
 

umarım anlatabilmişimdir ilgili olan arkadaşlar için şimdiden teşekkür ederim.
www.silivriotomasyon.com, www.armsistem.com

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.