NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3679 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 2 از 2

موضوع: نحوه صحیح و استاندارد مقداردهی به رجیسترها

  1. #1
    کاربر فعال
    تاریخ عضویت
    Nov 2013
    نوشته ها
    140
    تشکر
    0
    تشکر شده 3 بار در 3 پست

    پیش فرض نحوه صحیح و استاندارد مقداردهی به رجیسترها

    با عرض سلام و خسته نباشید خدمت شما.
    من دارم با کامپایلر keil برای میکروکنترلرهای سری LPC ساخت شرکت NXP برنامه نویسی میکنم. میخواستم ببینم که نحوه صحیح مقداردهی به رجیسترها چه جوری هستش. مثلا میخوام که پین های 0 و 4 و 10 و 15 و 24 از پورت 0 رو با استفاده از رجیستر FIO0DIR به عنوان خروجی تعریف کنم. آیا باید مثل کد زیر بنویسم :
    FIO0DIR=0x01008411
    یا روش دیگه ای وجود داره.
    خیلی ممنون.

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام
    روش بالا درست هست ، اما افرادی که ممکنه در آینده برنامه رو بخونن ، ممکنه دچار مشکل بشن ( برای اینکه بفهمیم کدوم پایه ها با دستور FIO0DIR به عنوان خروجی تعریف شدن باید عدد 0x01008411 رو به باینری تبدیل کنیم ) .
    از طرف دیگه این دستور ، در کمترین زمان ممکن توسط cpu اجرا میشه ( برای خروجی کردن پایه های مذکور ، دستور اضافه ای اجرا نمیشه ) .
    در صورتی که برای شما استفاده های بعدی از برنامه مهم نیست و قصد دارید نوشتن برنامه رو در بهینه ترین حالت انجام بدید ، از همین روش استفاده کنید . در غیر اینصورت از دستورات شیفت استفاده کنید :
    FIO0DIR=(1 << 0)|(1 << 4)|(1 << 10)|(1 << 15)|(1 << 24)
    دستور شیفت به تعداد شیفت های انجام شده ، وقت cpu رو تلف میکنه ، مثلا برای برنامه بالا حداقل 50 سیکل کاری cpu صرف میشه .
    شما میتونید از کتابخونه های استاندارد نظیر camis هم برای نوشتن برنامه استفاده کنید .

  4. کاربران : 2 تشکر کرده اند از شما 1nafar برای ارسال این پست سودمند:


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

  1. پاسخ: 2
    آخرين نوشته: 31-03-2014, 00:32
  2. شیفت رجیستر
    توسط mehdi_nxp در انجمن الکترونیک
    پاسخ: 6
    آخرين نوشته: 28-05-2012, 11:32
  3. فرا خوانی رجیستر ها در iar
    توسط vahidasm در انجمن AT91 series (ATMEL)
    پاسخ: 5
    آخرين نوشته: 08-11-2010, 09:31
  4. ریشه یابی واژه های بهار ، تابستان ، پاییز و زمستان
    توسط arsalan681 در انجمن گفت و گوي آزاد
    پاسخ: 0
    آخرين نوشته: 26-06-2010, 00:03

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

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