سلام
من توی برنامه میکرو دیدم که داخل شرط حلفه ها یا دستور if ، معمولا دو مقدار با هم and (&) میشوند.
یکی از مقادیر به صورت یک متغیر هست و دیگری به صورت یک عدد هگزا دسیمال
مثلا :
کد:
while (!(U1LSR & 0x20));
U1THR = CR;
یا
کد:
if(ILR&0x00000001) //Test for RTC counter interrupt
{
led = IOPIN1; //read the current state of the IO pins
IOSET1 = 0x00010000; //Set the idle LED
ILR = 0x00000001; //Clear the interrupt register
}
من حدس میزنم اون اعداد هگزا دسیمال که توی مقایسه با یک متغیر دیگه and میشه ، نشانگر یک دستور باشه!
و شرط چک میکنه ببینه آیا اون متغیر با اون مقدار برابر هست یا نه؟
اما سوال که پیش میاد اینه که چرا مثلا اینطوری نوشته نمیشه :
کد:
while (!(U1LSR == 0x20));(
چرا از & استفاده میکنند؟
سوال بعد اینکه اوت اعداد هگزا دسیمال که چه توی این موارد و چه موقع معدار دهی متغیرهای محتلف استفاده میشه چی هستش؟ آیا هر کدوم نشانگر یک دستوره؟ و باید توی دیتاشیت یا usermanual میکرو دنبالش گشت یا ؟!
تازه وارد برنامه نویسی میکرو شدم و اینها برام مبهمه