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
İlgili C Programlama soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.