اطلاعیه

Collapse
No announcement yet.

(LPC 1769 (cortex - m3

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

    #31
    پاسخ : پاسخ : (LPC 1769 (cortex - m3

    نوشته اصلی توسط plasma
    (شاید بیشتر این مطالبی که پایین هست رو بدونید، ولی من محض احتیاط بعضی چیزارو هم میگم تا اگه بلد نیستین، گمراه نشین.)
    خوب این یه کد HEX هست.
    یه رجیستر 32 بیتی، از 8 تا نیبل (واحدای 4 بیتی) تشکیل شده.
    هر نیبل هم که میتونه از مقدار 0 تا F باشه.

    وقتی ما دستور
    LPC_GPIO2->FIODIR = 0xFFFFFFFF;
    رو مینویسیم، میگیم که کل این 4 بیتی ها برابر F بشن. یعنی کل بیت های این رجیستر برابر با 1 بشن.
    مثلا اگه بخوایم فقط 1 بیت اول 1 بشه، باید بنویسیم
    LPC_GPIO2->FIODIR = 0x00000001;
    یا اگه بخوایم 4 بیت اول با هم 1 بشن جای یک F رو قرار میدیم.

    یه راه دیگه هم هست که دسترسی بیت به بیت رو ساده تر میکنه. اون هم استفاده از Shift هست.
    مثلا اگه اشتباه نکنم، برای 1 کردن بیت هشتم، میشه این دستور رو نوشت.
    کد:
    LPC_GPIO2->FIODIR = (1<<8)
    تو این روش، اگه در نظر بگیریم که کد باینری عدد 1 برابر با:
    00000000000000000000000000000001
    هست، بعد از شیفت دادن برابر با
    00000000000000000000000100000000
    میشه که یعنی بیت 8 (در واقع نهمه چون از 0 شروع میشه) از وضعیت 0 به 1 تغییر پیدا کنه.


    حالا این که چرا این بیت هارو صفر و یک میکنیم: این رجیستر ها هر کدوم از بیت هاشون برای یه کاری استفاده میشن. مثلا رجیستر FIODIR ، ورودی یا خروجی بودن رو تعیین میکنه.
    مثلا بیت 0 از رجیستر LPC_GPIO2->FIODIR در واقع وضعیت پین P2.0 رو تعیین میکنه.
    یا رجیستر FIOSET میگه که کدوم پین ها باید 1 بشن و رجیستر FIOCLR هم میگه که کدوما باید 0 بشن و FIOPIN وضعیت پین رو مشخص میکنه و ...

    (اگه دوستان مشکلی تو این متن میبینن لطفا تصحیح کنن)
    واقعا ممنونم.یک حیوان زحمت کش دو حرفی ، فهم شدم
    مشخصات : http://www.eca.ir/forum2/index.php?topic=1721.msg638969#msg638969

    هیچ وقت از یادگیری نترس
    [move] :agree: :biggrin: :sad: :rolleyes:[/move]

    دیدگاه


      #32
      پاسخ : پاسخ : (LPC 1769 (cortex - m3

      نوشته اصلی توسط plasma

      و برای ریست کردنش ( 0 کردن )این کدو مینویسن
      [code=c]LPC_GPIO0->FIOCLR = 0x00000000;[/code]
      برای ریست کردن باید به صورت زیر عمل کنی
      LPC_GPIO0->FIOCLR = 0xFFFFFFFF;
      در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

      دیدگاه


        #33
        پاسخ : (LPC 1769 (cortex - m3

        ممنون، اشتباه شد :biggrin:

        دیدگاه

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