اطلاعیه

Collapse
No announcement yet.

چرا دستورات رو می پیچونند؟

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

    چرا دستورات رو می پیچونند؟

    با سلام خدمت دوستان
    می خواستم بدونم چرا در بعضی جاها تو زبان c خیلی از دستورات را مخصوصا دستورات while رو با روابط and ,or به نوعی می پیچونند و از عبارت اصلی استفاده نمیکنند.
    متلا تو تایمر و کانتر زمانی که می خواییم منتظر بمونیم تا بیت TOV0 سریز بشه از دستور while(!(TIFR&0x02); استفاده می شه در صورتی که خیلی راحت می تونند بزنند while(!(TIFR.1); اگه دستو رو اشتباه نکرده باشم همون کار رو می کنه یا تو خیلی جاهای دیگه این قضیه به چشم می خوره مثلا تو ADC هم هست.

    #2
    پاسخ : چرا دستورات رو می پیچونند؟

    شاید یه علت قابل حمل بودن برنامه باشه. چون ممکنه شما برنامه رو بخوای با یه کامپایلر دیگه ران کنی و اونوقت به احتمال زیاد دستور اول ساپورت میشه ولی دستور دوم ممکنه اینطور نباشه

    دیدگاه


      #3
      پاسخ : چرا دستورات رو می پیچونند؟

      با تشکر از دوست خوبم mojalan
      کسی دیگه جوابی نداره

      دیدگاه


        #4
        پاسخ : چرا دستورات رو می پیچونند؟

        TIFR.1 معنی درستی نداره.نحوه ی درست اینه که با کل ریجستر کار کنید و اون بیت مورد نظرتون رو با متناظرش mask کنید.
        کامپایلر win avr اصلا این نقطه گذاری رو قبول نمیکنه و کد ویژن هم تو ریجستر های توسعه یافته قبول نمی کنه.پس میشه اینو فهمید که روش اصلی کار استفاده از کل ریجستر هست.
        [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

        دیدگاه


          #5
          پاسخ : چرا دستورات رو می پیچونند؟

          اون رو من فقط به جهت مثال گفتم تو ADC هم من این رو دیدم اما اونجا با رجیستر ADCSRA هم به صورت معمولی که من گفتم کار کرده و هم به صورت پیچونده شدهکار کرده نظر شما در باره این چیه؟

          دیدگاه


            #6
            پاسخ : چرا دستورات رو می پیچونند؟

            دایی جان
            همونطور که دوستان گفتن بیشتر کمپایلرهای c دستورات بیتی رو نمیشناسن. پس مجبورن با andآ‌ یا orآ‌ به بیت مرود نظر دست پیدا کنند.
            حتی کدویژن هم فقط برای پورتها دسترسی بیتی گذاشته که همین کلی دردسر بوجود آورده.
            بیسکام به نوعی ساده سازی شده تا افراد مبتدی هم بتونن برنامه بنویسن.
            مقایسه اینها درست نیست چون برای دوگروه مختلفه.
            مثلا کامیون رو نباید با 206 دنده اتومات مقایسه کنید!
            با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

            دیدگاه

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