Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: povulon - 21 Şubat 2018, 12:29:37

Başlık: bit okuma
Gönderen: povulon - 21 Şubat 2018, 12:29:37
MErhaba

int1 m;
int x ;

x = 0b11101010 ;

x  in 5 . bitini m ye atmak istiyorum CCS C de  maalesef bulamadım

Başlık: Ynt: bit okuma
Gönderen: mehmet - 21 Şubat 2018, 12:44:03

/* Bit Operation macros */
#define sbi(b,n) ((b) |=   (1<<(n)))        /* Set bit number n in byte b   */
#define cbi(b,n) ((b) &= (~(1<<(n))))       /* Clear bit number n in byte b */
#define rbi(b,n) ((b) &    (1<<(n)))        /* Read bit number n in byte b  */
#define fbi(b,n) ((b) ^=   (1<<(n)))        /* Flip bit number n in byte b  */

#define bit_is_set(b,n)   (b & (1<<n))      /* Test if bit number n in byte b is set   */
#define bit_is_clear(b,n) (!(b & (1<<n)))   /* Test if bit number n in byte b is clear */
Başlık: Ynt: bit okuma
Gönderen: povulon - 21 Şubat 2018, 12:58:39
cevabınız için teşekkürler

küçük bir örnek rica etsem
Başlık: Ynt: bit okuma
Gönderen: RaMu - 21 Şubat 2018, 13:09:11
m = bit_test(x,5);
Türkçe kaynak bile varmış,
niye bulamadınız.
https://mehmetakifsonmez.wordpress.com/2012/10/16/ccs-c-ile-pic-programlama-bit-ve-byte-islemleri-dahili-fonksiyonlari/
Başlık: Ynt: bit okuma
Gönderen: sadogan - 22 Şubat 2018, 00:48:57
Alıntı yapılan: povulon - 21 Şubat 2018, 12:29:37
MErhaba

int1 m;
int x ;

x = 0b11101010 ;

x  in 5 . bitini m ye atmak istiyorum CCS C de  maalesef bulamadım



if(x&0B00100000) m=1;
else m=0;
Başlık: Ynt: bit okuma
Gönderen: exmachine - 22 Şubat 2018, 10:12:06
Eğer hep aynı yerdeki bit okunacak ise şöyle basit bir kullanımı da var :



int x;
int m;

#bit x_5 = x.5 

m=x_5;

Başlık: Ynt: bit okuma
Gönderen: povulon - 23 Şubat 2018, 13:04:39
Peki

unsigned int16 i;

int1 n;

n=1;

n ' nin içinde 1 değerini  i 'nin 7. bitine aktarmak istiyorum

Teşekkürler
Başlık: Ynt: bit okuma
Gönderen: RaMu - 23 Şubat 2018, 15:43:28
Bazı şeyler istemekle olmuyor, çalışmak denemek lazım.
Başlık: Ynt: bit okuma
Gönderen: sadogan - 23 Şubat 2018, 15:43:38
if(n) i |= 0B10000000;
else  i &= 0B01111111;