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





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









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





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

نمایش نتایج: از 1 به 8 از 8

موضوع: LPC_GPIO2

  1. #1
    2009/08/26
    146
    2

    LPC_GPIO2

    سلام
    اين دستور LPC_GPIO2
    در کتابخانه CMSIS اينطوري معني شده
    define LPC_GPIO2

    ((LPC_GPIO_TypeDef *)
    کسي ميدونه يعني چي
  2. #2
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : LPC_GPIO2

    خط بعدیش رو هم بذار احتمالا انتهای خط برای پرهیز از طولانی نشدن \ گذاشته. تمامی خطوطی که آخرشون \ هست به خط بعدی وصل میشه.
  3. #3
    2009/08/26
    146
    2

    پاسخ : LPC_GPIO2

    01029 #define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE )
    خط 1029 کتابخانه CMSIS اينو نوشته ولي نميدونم چرا اينجا Paste ميکنم برعکس lميافته
  4. #4
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : LPC_GPIO2


    #define LPC_GPIO2 ((LPC_GPIO_TypeDef*)LPC_GPIO2_BASE)


    این یعنی یک آدرسی به نام LPC_GPIO2_BASE داریم که اگر خواستی باهاش کار کنی فرض رو بر این قرار بده که دارای ساختاری مثل ساختار LPC_GPIO_TypeDef هست. یا به نوعی دیگه LPC_GPIO2 در اصل یک ساختاری مثل LPC_GPIO_TypeDef هست که در آدرس LPC_GPIO_BASE قرار داره.
  5. #5
    2009/08/26
    146
    2

    پاسخ : LPC_GPIO2

    :biggrin:
    ممنون آقا رضا
    مشکل اينجاست که نميدونم LPC_GPIO_TypeDe يعني چي
  6. #6
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : LPC_GPIO2

    ببین آقا جون!
    اگر به آدرس رجیستر های GPIO در دیتا شیت مثلا LPC1768 دقت کنی میبینی که مثلا نحوه چیدمان رجیستر ها به این صورت هست:

    آدرس صفر: FIODIR
    آدرس 16: FIOMASK
    آدرس 20: FIOPIN
    آدرس 24: FIOSET
    آدرس 28: FIOCLR
    بنا براین میتونیم فرض کنیم که اگر آدرس شروع FIO0DIR برابر با 0x2009C000 باشه در حقیقت در این آدرس ساختاری مثل زیر وجود داره:


    struct
    {
    unsigned int FIODIR; // 0
    unsigned int reserved1[3];
    unsigned int FIOMASK;
    unsigned int FIOPIN;
    unsigned int FIOSET;
    unsigned int FIOCLR;
    }


    بنا براین برای دسترسی به این رجیستر ها میتونیم بگیم که یک ساختار عمومی داریم بنام LPC_GPIO_TypeDef که به این فرمی که قید کردم تعریف شده. حالا برای دسترسی به این رجیستر ها کافیه بگیم که رجیستر های GPIO پورت صفر از این ساختار تبعیت میکنه و در آدرس 0x2009C000 نشسته. این میشه دقیقا تفسیر اون خطی که شما خواستین.
  7. #7
    2007/03/07
    45
    3

    پاسخ : LPC_GPIO2

    نقل قول نوشته اصلی توسط ieee7
    :biggrin:
    ممنون آقا رضا
    مشکل اينجاست که نميدونم LPC_GPIO_TypeDe يعني چي
    سلام دوست عزيز
    سوال خوبي پرسيديد چون فهميدم منم روش مشکل دارم بر همين خاطر فايل help کتابخونه cmsis رو باز کردم اين کلمه رو پيدا کردم
    اين کلمه توي فايل lpc17xx.h تعريف شده خط 251 و چيزي غير از اسم structure نيست اما مشکل اين بود که توي فايل از دستور struct استفاده نشده
    و از typedef struct استفاده شده هر دو تاي اين دستورها براي تعريف structure بکار ميرند اما تو اولي اسم اول مياريم و تو دومي اسم structure رو آخر مياريم
    البته خود struct هم در بعضي موارد بدون اسم تعريف ميشه مثل وقتيکه توي union باشه
    بعد با استفاده از اين اسم يک pointer با نام LPC_GPIO2 وارد structure کرده و به اعضاي داخل sructure از روش خودش دسترسي پيدار ميکنه (توي فايل lpc17xx.h خط 986 )
    اما روش تعريف pointer و پرانتزهاي اطرفش هنوز گنگ براي من چون تا حالا اينطوريش نديده بودم
  8. #8
    2008/09/02
    اصفهان
    1,897
    41

    پاسخ : LPC_GPIO2

    این چیز مهمی نیست. برای اشاره کردن به جایی باید آدرس داشت. اما آدرس ها به خودی خود فقط عدد هستن. حالا میشه این عدد آدرس رو توی یک متغیر ریخت و یا بطور مطلق ازش استفاده کرد. شما موقعی که میگین:
    a = (int)b مگه منظورتون این نیست که میخوایین b رو به نوعی به عنوان یک int ببینین؟ حالا اینجا هم میگین به آدرس
    LPC_GPIO2_BASE به عنوان اشاره گری به یک ساختار از جنس LPC_GPIO_TypeDef نگاه کن. حالا هر کاری بشه با اشاره گری از این جنس انجام داد با این اشاره گر فرضی هم میشه.
نمایش نتایج: از 1 به 8 از 8

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

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

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

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

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