تعدادی از ماکرو های پرکاربرد برای تغییر بیتی در پورت یا متغیر ها
#define _BV(pin) (1 « pin)
#define sbi(sfr,pin) (sfr |= _BV(pin))//بیت رو یک میکنه
#define cbi(sfr,pin) (sfr &= ~_BV(pin))// بیت رو صفر میکنه
#define tbi(sfr,pin) (sfr ^= _BV(pin))//بیت رو تاگل میکنه
#define bis(sfr, bit) (sfr & _BV(bit))// یک بودن بیت رو برمیگردونه
#define bic(sfr, bit) (!(sfr & _BV(bit)))//صفر بودن بیت رو برمیگردونه
#define lbis(sfr, bit) do { } while (bic(sfr, bit))// انقدر منتظر میمونه تا بیت یک بشه
#define lbic(sfr, bit) do { } while (bis(sfr, bit))// انقدر منتظر میمونه تا بیت صفر بشه
Post #958
2.02K