اطلاعیه

Collapse
No announcement yet.

سوالات مربوط به KEIL

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

    #16
    پاسخ : سوالات مربوط به KEIL

    نوشته اصلی توسط Soodi
    & منطقی یعنی چه ؟
    شما درس مدار منطقی رو خوندید؟ AND, OR, NOT و ...؟
    دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

    دیدگاه


      #17
      پاسخ : سوالات مربوط به KEIL

      من اول دبیرستان هستم
      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

      دیدگاه


        #18
        پاسخ : سوالات مربوط به KEIL

        نوشته اصلی توسط Soodi
        من اول دبیرستان هستم
        انتظار این رو نداشتم. خوب فکر می کنم شما قبل از اینکه بخوای کار میکرو رو یاد بگیری (اونم ARM) باید قبلش یه سری پیش زمینه هایی داشته باشی. مثل مدار، الکترونیک و مخصوصاً منطقی.
        دانش فنی تا به عمل تبدیل نشده، ذره ای ارزش نداره. اما بعضی وقت ها باید از دانش برای باز کردن مرزهای جدیدی در علم استفاده کرد، نه اینکه اونها رو صرفاً فقط به عمل تبدیل کرد.

        دیدگاه


          #19
          پاسخ : سوالات مربوط به KEIL

          با سلام

          من کار با AVR رو کاملا آشنایی دارم و با مدارات الکترونیکی و قطعات الکترونیکی و برنامه نویسی Basic و ... هم آشنایی کامل دارم

          با سپاس
          http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

          دیدگاه


            #20
            پاسخ : سوالات مربوط به KEIL

            این & منطقی هست.
            اپراتور & فقط به دو صورت استفاده میشه. bitwise and و اخذ آدرس. این اپراتور برای عملیات منطقی استفاده نمیشه. اون موقعی که شما دارین فکر میکنین که این اپراتور منطقی هست فقط یک اشتباه هست. اینجا رو ببینید:


            if( a & b )
            {
            }


            اگر منظورتون استفاده از این اپراتور در همچین جاهایی هست باید خدمتتون عرض کنم که این دستور یک فرم خلاصه از دستور زیر هست:

            if( ( a & b ) != 0 )
            {
            }


            در اینجا مساوی نبودن عبارت a & b با عدد صفر چک میشه. بنا براین تفسیر درست اینه که:
            اگر حاصل and بیتی بین a و b صفر نبود آنگاه....

            بنا براین جناب Soodi شما اگر میخوایین ببینین که آیا در یک عدد بیت یا بیت هایی ست شده فقط کافیه طبق فرمایش جناب پور آزاد عددی متشکل از بیت های کذایی رو بسازین با استفاده از این اپراتور با محتوای رجیستر کذایی and کنین و حاصل رو ببینین اگر غیر صفر بود یعنی یک یا چند تا از بیت هایی که مشخص کردین یک شده اند.

            مثلا فرض کنیم میخواییم ببینیم آیا بیتهای 0 و 1و 5 در عدد a ست شده اند یا نه:


            if( ( a & ((1<<0)+(1<<1)+(1<<5)) ) != 0 )
            {
            }


            اینجا برای ساختن عددی که شامل بیتهای 0و 1و 5 بصورت ست شده باشه از عمل جمع استفاده کردیم. اما چون تصور ذهنی استفاده از عمل جمع؛ محاسبات هست. برای رفع این تصور و تاکید به ساختن ماسک عددی از عمل بیتی OR با استفاده از اپراتور | (shift + \) استفاده میکنیم:

            if( ( a & ((1<<0)|(1<<1)|(1<<5)) ) != 0 )
            {
            }


            یا از فرم خلاصه شده اش:

            if( a & ((1<<0)|(1<<1)|(1<<5)) )
            {
            }


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

            دیدگاه

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