ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2009/08/03
    12
    3

    مفهوم دستور While(0U) چی هست

    سلام و درود
    توی کتابخونه های Stm32، Define هایی قرار دارند به شکل زیر، معنا و مفهوم شرط while چی هست.
    کد:
    #define __HAL_RCC_TIM1_CLK_ENABLE()   do { \
                                            __IO uint32_t tmpreg; \
                                            SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
                                            /* Delay after an RCC peripheral clock enabling */\
                                            tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
                                            UNUSED(tmpreg); \
                                          } while(0U)
    و
    کد:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    UNUSED(x) ((void)(x))
    خوب قراره تایمر 1 رو فعال کنیم بعد از ست کردن بیت فعال سازی و خواندن بیت مربوطه به شرط حلقه while میرسیم. 0U یعنی عدد به فرمت unsigned int . در نتیجه یعنی 0 ، خوب بودن مقدار صفر در شرط while مانع از دوباره اجرا شدن حلقه میشه در نتیجه چه نیازی به بودن حلقه می باشد؟
  2. #2
    2014/01/13
    115
    92

    پاسخ : مفهوم دستور While(0U) چی هست

    نقل قول نوشته اصلی توسط hadi2020

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام و درود
    توی کتابخونه های Stm32، Define هایی قرار دارند به شکل زیر، معنا و مفهوم شرط while چی هست.
    کد:
    #define __HAL_RCC_TIM1_CLK_ENABLE()   do { \
                                            __IO uint32_t tmpreg; \
                                            SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
                                            /* Delay after an RCC peripheral clock enabling */\
                                            tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\
                                            UNUSED(tmpreg); \
                                          } while(0U)
    و
    کد:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    UNUSED(x) ((void)(x))
    خوب قراره تایمر 1 رو فعال کنیم بعد از ست کردن بیت فعال سازی و خواندن بیت مربوطه به شرط حلقه while میرسیم. 0U یعنی عدد به فرمت unsigned int . در نتیجه یعنی 0 ، خوب بودن مقدار صفر در شرط while مانع از دوباره اجرا شدن حلقه میشه در نتیجه چه نیازی به بودن حلقه می باشد؟
    بله ، با توجه به شرط حلقه ، فقط یکبار اجرا میشه ، پس چه نیازی به بودنش هست ؟
    ولی دقت کنید که اینجا تعریف تابع نداریم و این دیفاین هستش
    دیفاین برای معرفی یک عبارت به جای یک دستور العمل به کار میره نه بیشتر
    برنامه نویس اینجا با استفاده از کلمه do در واقع اون چند دستور العمل را در قالب یک دستور العمل مرکب بیان کرده
    منظورم اینه که اگه اون do و while آخر را بردارید ، مترجم اشکال میگیره
    ولی با این حقه میتونیم چند دستور العمل را دیفاین کنیم که در غیر اینصورت غیر ممکن میشد
  3. #3
    2009/10/27
    تهران
    3,300
    759

    پاسخ : مفهوم دستور While(0U) چی هست

    نقل قول نوشته اصلی توسط x935418

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ولی دقت کنید که اینجا تعریف تابع نداریم و این دیفاین هستش
    دیفاین برای معرفی یک عبارت به جای یک دستور العمل به کار میره نه بیشتر
    برنامه نویس اینجا با استفاده از کلمه do در واقع اون چند دستور العمل را در قالب یک دستور العمل مرکب بیان کرده
    منظورم اینه که اگه اون do و while آخر را بردارید ، مترجم اشکال میگیره
    ولی با این حقه میتونیم چند دستور العمل را دیفاین کنیم که در غیر اینصورت غیر ممکن میشد
    استفاده از do{..}while(0) به این دلیل نیست که در ماکرو نمی توان از چند دستور العمل استفاده کرد. بلکه این امر کاملا مجاز است. استفاده از این روش به این دلیل است که بتوانیم از ماکرو مذکور شبیه یک تابع در if استفاده کنیم. در دو لینک زیر در این مورد کاملا توضیح داده شده است:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
    امکان پاسخگویی به سوالات از طریق پیغام خصوصی مقدور نیست
نمایش نتایج: از 1 به 3 از 3

موضوعات مشابه

  1. مفهوم فرکانس نور
    توسط alireza824 در انجمن مخابرات نوری
    پاسخ: 14
    آخرين نوشته: 2017/07/02, 23:49
  2. مفهوم کد
    توسط سید رضا باباتبار در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2015/06/27, 15:53
  3. مفهوم این چند خط چیه
    توسط korosh00 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2015/06/24, 10:25
  4. مفهوم دستور a->b=c
    توسط mohammad_6910 در انجمن پروسسورهای ARM
    پاسخ: 2
    آخرين نوشته: 2014/07/27, 14:50
  5. تعداد دستور اسمبلی یک دستور زبان C
    توسط brm3 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2011/02/09, 16:47

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •