Bir yazmaçtaki belirli bir biti set, clear ve toggle eden C kodunu yazın.

Cevap

Bit işlemleri için maske kullanılır: (1U << n) yalnızca n'inci biti 1 olan bir sayı üretir.

#define BIT_SET(reg, n)    ((reg) |=  (1U << (n)))
#define BIT_CLEAR(reg, n)  ((reg) &= ~(1U << (n)))
#define BIT_TOGGLE(reg, n) ((reg) ^=  (1U << (n)))
#define BIT_READ(reg, n)   (((reg) >> (n)) & 1U)

BIT_SET(GPIOA->ODR, 5);    // PA5 = 1 (LED yak)
BIT_TOGGLE(GPIOA->ODR, 5); // LED durumunu değiştir
  • OR (|) ile set
  • AND ve NOT (& ~) ile clear
  • XOR (^) ile toggle
  1. C dilinde volatile anahtar kelimesi ne işe yarar?OrtaC ProgramlamaEmbedded
  2. Stack ile heap arasındaki fark nedir? Gömülü sistemlerde dinamik bellek kullanımından neden kaçınılır?OrtaC ProgramlamaEmbedded
  3. Endianness nedir? Little-endian ile big-endian farkı nedir?KolayC ProgramlamaEmbedded

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle