اطلاعیه

Collapse
No announcement yet.

دستور while(!TIRF&0x01)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دستور while(!TIRF&0x01)

    باسلام خدمت همه دوستان
    من عین خیلی ها دارم کار با avr را یاد می گیرم وقتا رسیدم به تایمر ها به یه دستوری برخورد کردم که هیج جا اونو ندیده بودم دستور while(!TIRF&0x01);
    در ضمن این رو هم می دونم که صبر می کنه تا رجیستر TIRF به مقدار 1 برسه ولی شکل دستوری این برام خیلی مهمه
    آخه مگه تو پرانتز while نباید دستور شرطی قرار بگیده پس چرا از & استفاده کرده

    #2
    پاسخ : دستور while(!TIRF&0x01)

    خیلی خوب بعد از and کردن اگه عدد غیر از صفر بود یعنی شرط برقراره و اگر صفر بود که هیچی شرط برقرار نیست!!!!!!!!
    مثل این که بنویسی

    while(a);
    اگه مقدار a غیر از 0 بود یعنی شزط برقراره!!
    انجام پروژه های برنامه نویسی اندروید
    [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    دیدگاه


      #3
      پاسخ : دستور while(!TIRF&0x01)

      تو زبون C++ مقدار غیر صفر برابر با ارزش درستی در نظر گرفته میشه و عدد 0 ارزش نادرست داره.
      این دستوری که شما نوشتی مقدار یک ثبات رو بیت به بیت با مقدار 0x01 اند میکنه. از اونجاییکه 0x01فقط یک بیت 1 اونهم تو کم ارزشترین بیتش داره، نتیجه دستور & بین ثبات و مقدار 0x01 به مقدار این بیت بستگی داره.
      اگه کم ارزشترین بیت 1 باشه نتیجه درست میشه چون جواب عدد غیر صفره
      اگه کم ارزشترین بیت 0 باشه نتیجه نادرست میشه چون همه بیتهای جواب 0 شدند
      این نوع دستور برای چک کردن وضعیت یک بیت خاص در یک ثبات کاربرد داره

      دیدگاه

      لطفا صبر کنید...
      X