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.