Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

bit işlemleri

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

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.