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

نمایش نتیجه های نظرسنجی ها: دوستان بحث رو چطور ادامه بدیم؟

رأی دهندگان
113. شما نمی توانید در این نظرسنجی رای دهید.
  • گفتن مثال برای قسمتهای راه اندازی شده

    56 49.56%
  • ادامه بحث و راه اندازی قسمتهای راه اندازی نشده

    57 50.44%
صفحه 1 از 18 123456789101112131415161718 آخرینآخرین
نمایش نتایج: از 1 به 20 از 360

موضوع: تشریح کامل دستورات cmsisبرای lpc1768

  1. #1
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    Exclamation تشریح کامل دستورات cmsisبرای lpc1768

    سلام به همه دوستان گرامی.یه مدت پیش یه پست زدم که شایییییییید دوستان کمک کنن و بتونیم دستورات cmsis رو به همه آموزش بدیم تا دیگه نیازی به رجیستر نویسی نباشه و همه با زبان سطح بالا بتونن با میکرو های سری cortex کار کنن.اما ذوستان تمایلی نشون ندادن.
    بنابر این خودم دست به کار شدم و شروع به ترجمه و برگردوندن دستورات به فارسی کردم.ممکنه کسی بگه رجیستر نویسی قدرت بیشتری رو به برنامه نویس میده اما این کاملا اشتباه.چون cmsis امکان برنامه نویسی با همون قدرت رجیستر نویسی اما با دردسر کمتر رو به برنامه نویس میده.برای شروع برنامه نویسی و توضیح دستورات کار با پورت رو برای lpc 1768 از پست بعد شروع میکنم
    ویرایش توسط esi_52000 : 17-09-2013 در ساعت 19:46


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

  3. #2
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    سلام اسی جون . چطوری دادا ؟ میبینم همچنان فعالی و بخاطر همین خوشحالم
    در مورد همکاری و کمک باید بگم خود من دارم همین کار تو رو برای STM32 انجام می دم دقیقا !! پس از دست ما ناراحت نشو یه بار !
    کاملا حرف شما رو تصدیق می کنم درباره این که رجیستر نویسی و CMSIS از یک بیس هستند و برای اثباتش کافیه نگاهی به کتابخانه های CMSIS بندازید و ببینید که اونها هم از همین دستورات استفاده کردن !! فقط برای راحتی کار و استفاده از ثابت های متنی قابل فهم بجای عدد و کد از define یا structure ها استفاده کردن که واقعا کار رو راحت می کنه . مثل GPIOA_PIN_0 بجای مثلا 0x0000001 .
    فقط برای یادگیری اینکه هر رجیستر چیکار می کنه بشدت توصیه می کنم حتما قبل از استفاده از هر دستور CMSIS متن دستوراتش رو یه نگاه بندازید و باتوجه به Reference Manual میکروی مربوطه ، ببینید هر رجیستر چه کاری رو انجام می ده .
    موفق و پیروز باشید ...

  4. کاربران : 12 تشکر کرده اند از شما sigma-mx برای ارسال این پست سودمند:


  5. #3
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    خوب اینم الوعده وفا
    در اولین قدم باید کتابخانه ی lpc17xx_gpio.h رو به برنامه اضافه کنید.
    #include “lpc17xx_gpio.h”
    همون طوری که میدونید در میکرو های lpc میشه با پورتها به صورت 32 بیتی //16 بیتی//8بیتی کار کرد
    کار کردن با پورتها به صورت 32 بیتی:
    حالا میتونید از توابع زیر توی برنامه استفاده کنید و حالش رو ببرید.
    1-توسط این دستورات پایه های یک پورت به صورت ورودی یا خزوجی پیکر بندی میگردند.
    GPIO_SetDir( شماره پورت, پایه های مورد نظر , 0 یا 1)
    FIO_SetDir( شماره پورت, پایه های مورد نظر , 0 یا 1)

    شماره پورت : پورتی که میخواییم اون رو ورودی یا خروجی کنیم.(از 0 تا 4)
    پایه های مورد نظر :عددی بین 0X00000000 تا 0XFFFFFFFF که به پینهای پورت اشاره دارد.
    برای ورودی کردن از عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.
    مثال:
    GPIO_SetDir(0,0X00000005,1);
    در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.
    2- توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده اند یک میگردند.
    GPIO_SetValue( شماره پورت , پایه های مورد نظر )
    FIO_SetValue( شماره پورت , پایه های مورد نظر )
    3- توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده اند صفر میگردند.
    GPIO_ClearValue( شماره پورت , پایه های مورد نظر )
    FIO_ClearValue( شماره پورت , پایه های مورد نظر )
    یه توضیح کوچیک اینکه دستورات صفر و یک کننده ی پایه ها رو پینهایی که به صورت ورودی پیکربندی شدن یا اینکه
    اصلا پیکربندی نشدن هیچ تاثیری ندارن.
    - توسط این دستورات عدد روی پایه های یک پورت رو بخونین.
    Value= GPIO_ReadValue( شماره پورت , پایه های مورد نظر )
    Value=FIO_ReadValue( شماره پورت , پایه های مورد نظر )
    راستی این رو هم بگم که value یه متغیر 32 بیتیه
    5-توسط این دستورات میتونید یه دسته از پینهای یه پورت رو از دسترس خارج کنین.
    GPIO_SetMask( شماره پورت, پایه های مورد نظر , 0 یا 1)
    FIO_SetMask( شماره پورت, پایه های مورد نظر , 0 یا 1)
    در صورت قرار دادن عدد 1 عمل mask انجام و پینها غیر فعال میگردند واگر 0 بگذاریم دوباره به حالت عادی باز گشته و امکان نوشتن و خواندن از انها فراهم میگردد.
    کار کردن با پورتها به صورت 16 بیتی:
    1-توسط این دستورات پایه های یک پورت به صورت ورودی یا خزوجی پیکر بندی میگردند.
    FIO_HalfWordSetDir( شماره پورت, بیت بالا یا پایین16 , پایه های مورد نظر , 0 یا 1)
    شماره پورت : پورتی که میخواییم اون رو ورودی یا خروجی کنیم.(از 0 تا 4)
    برای 16 بیت پایین رتبه عدد 0 و16 بیت بالا رتبه عدد 1 میگذاریم
    پایه های مورد نظر :عددی بین 0X0000 تا 0XFFFF که به پینهای پورت اشاره دارد.
    برای ورودی کردن از عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.
    مثال:
    FIO_HalfWordSetDir(0,0,0X0005,1);
    در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.
    2- توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده اند یک میگردند.
    FIO_HalfWordSetDir( شماره پورت, بیت بالا یا پایین16 , پایه های مورد نظر )
    - توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده صفر میگردند.
    FIO_HalfWordClearDir( شماره پورت, بیت بالا یا پایین16 , پایه های مورد نظر )

    - توسط این دستورات عدد روی پایه های یک پورت رو بخونین.
    Value=FIO_HalfWordReadValue( شماره پورت , بیت بالا یا پایین16)
    راستی این رو هم بگم که value یه متغیر 16 بیتیه
    توسط دستور زیر عمل mask انجام یا غیر فعال میگردد
    FIO_HalfWordSetMAsk( شماره پورت, بیت بالا یا پایین16 , پایه های مورد نظر , 0 یا 1)
    کار کردن با پورتها به صورت 8 بیتی:
    1-توسط این دستورات پایه های یک پورت به صورت ورودی یا خزوجی پیکر بندی میگردند.
    FIO_ByteSetDir( شماره پورت,8بیت صفرم/اول/دوم/سوم , پایه های مورد نظر , 0 یا 1)
    شماره پورت : پورتی که میخواییم اون رو ورودی یا خروجی کنیم.(از 0 تا 4)
    پایه های مورد نظر :عددی بین 0X00 تا 0XFF که به پینهای پورت اشاره دارد.
    برای ورودی کردن از عدد 0 و برای خروجی از عدد 1 استفاده میکنیم.
    مثال:
    FIO_ByteSetDir(0,0,0X05,1);
    در این حالت پینهای 0 و 2 از پورت 0 به عنوان خروجی پیکربندی شده اند.
    2- توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده اند یک میگردند.
    FIO_ByteSetDir( شماره پورت, 8بیت صفرم/اول/دوم/سوم , پایه های مورد نظر )
    - توسط این دستورات پایه های یک پورت که به صورت خزوجی پیکر بندی شده صفر میگردند.
    FIO_ByteClearDir( شماره پورت, 8بیت صفرم/اول/دوم/سوم , پایه های مورد نظر )

    - توسط این دستورات عدد روی پایه های یک پورت رو بخونین.
    Value=FIO_ByteReadValue( شماره پورت , 8بیت صفرم/اول/دوم/سوم)
    راستی این رو هم بگم که value یه متغیر 8 بیتیه
    توسط دستور زیر عمل mask انجام یا غیر فعال میگردد
    FIO_ByteSetMAsk( شماره پورت, 8بیت صفرم/اول/دوم/سوم, پایه های مورد نظر , 0 یا 1)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////خوب حالا میریم سراغ دستوراتی که با وقفه پورتا کار میکنن.
    دوستان میدونن که میشه در این خانواده از میکروها از تمامی پینهای پورت 0 وپینهای 0 تا 13 پورت 2 به عنوان ورودی وقفه استفاده کرد.
    همچنین میشه تایین کرد که وقفه روی لبه ی بالارونده یا پایین رونده اتفاق بیفته.
    1-توسط این دستور میشه پورت 0 یا 2 رو به عنوان ورودی وقفه پیکربندی کرد.
    GPIO_IntCmd(شماره پورت ,پینهای مورد نظر , لبه بالا رونده یا پایین رونده)
    FIO_IntCmd(شماره پورت ,پینهای مورد نظر , لبه بالا رونده یا پایین رونده)

    شماره پورت : میتونه 0 یا 2 باشه(چون وقفه فقط روی این پورتا تعریف شده.
    پینهای مورد نظر:پینهایی از پورت که ورودی وقفه هستند.
    برای لبه بالا رونده عدد 0 ولبه پایین رونده عدد 1 بزارید.
    2-توسط این دستور میتونید بفهمید وقفه روی کدوم پایه از پورت اتفاق افتاده-
    GPIO_GetIntStatus(شماره پورت ,شماره پین مورد نظر , لبه بالا رونده یا پایین رونده)
    FIO_GetIntStatus(شماره پورت ,شماره پین مورد نظر, لبه بالا رونده یا پایین رونده)
    حتما حواستون باشه که توی این قسمت باید شماره پین مورد نظرتون رو بنویسید که اعداد 0 تا 31 برای پورت 0 و اعداد 0 تا 13 برای پورت 2 هستش.
    3-توسط این دستور میتونید پرچم وقفه اتفاق افتاده رو پاک کنین.
    GPIO_ClearInt(شماره پورت ,شماره پینهای مورد نظر ه)
    FIO_ClearInt(شماره پورت ,شماره پینهای مورد نظر,)
    لازم اینم بگم که وقفه پورت میکرو روی وقفه خارجی 3 تنظیم شده.پس بایستی حتما اینم بنویسید که
    NVIC_EnableIRQ(EINT3_IRQn);
    اینم یه نمونه برنامه کامل واسه تست مطالب بالا.
    #include <lpc17xx_gpio.h>
    //----------------------------------------------
    void delay(void);
    void EINT3_IRQHandler(void);
    //----------------------------------------------
    int main(void)
    {
    GPIO_SetDir(1,0Xffffffff,1);
    GPIO_ClearValue(1,0Xffffffff);
    GPIO_IntCmd(0,0xffffffff,1);
    NVIC_EnableIRQ(EINT3_IRQn);
    while(1);
    return 0;
    }
    //---------------------------------------------
    void delay(void)
    {
    long int i;
    for(i=0;i<400000;i++);
    }
    //---------------------------------------------
    void EINT3_IRQHandler(void)
    {
    char esi;
    for(esi=0;esi<32;esi++)
    {
    if(GPIO_GetIntStatus(0,esi,1))
    {
    GPIO_ClearInt(0,1<<esi);
    GPIO_SetValue(1,1<<esi);
    delay();
    GPIO_ClearValue(1,1<<esi);
    delay();
    }
    }
    }



  6. #4
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    ببخشید مثل اینکه خوب نوشته نشده
    فایل زیر رو دانلود کنید بهتره دوستان
    قدم بعدی کتابخونه ی pinsel هستش .البته اگه دوستان استقبال کنن. اونایی که مایلن ادامه بدم یه
    یا علی مدد بگن .منتظرم.
    فايل هاي پيوست شده فايل هاي پيوست شده


  7. #5
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    اسی جان اولا یا علی ! ثانیا برای اینکه کد هات درست نمایش داده بشن اونا رو بین تگ php که دکمش تو ویرایشگر هست بزار . مثل این ...
    [PHP]#include <lpc17xx_gpio.h>
    //----------------------------------------------
    void delay(void);
    void EINT3_IRQHandler(void);
    //----------------------------------------------
    int main(void)
    {
    GPIO_SetDir(1,0Xffffffff,1);
    GPIO_ClearValue(1,0Xffffffff);
    GPIO_IntCmd(0,0xffffffff,1);
    NVIC_EnableIRQ(EINT3_IRQn);
    while(1);
    return 0;
    }
    //---------------------------------------------
    void delay(void)
    {
    long int i;
    for(i=0;i<400000;i++);
    }
    //---------------------------------------------
    void EINT3_IRQHandler(void)
    {
    char esi;
    for(esi=0;esi<32;esi++)
    {
    if(GPIO_GetIntStatus(0,esi,1))
    {
    GPIO_ClearInt(0,1<<esi);
    GPIO_SetValue(1,1<<esi);
    delay();
    GPIO_ClearValue(1,1<<esi);
    delay();
    }
    }
    }[/PHP]

  8. کاربران : 20 تشکر کرده اند از شما sigma-mx برای ارسال این پست سودمند:


  9. #6
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    داداش sigma سلام ما چاکرتیم عزیز.ممنون که گفتی چطور نوشته ها رو بزارم.باور کن بلد نبودم
    بینم واسه بقیه یا علی گفتن سخته هااااااااااااااا

  10. کاربران : 7 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  11. #7
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    نه مثل اینکه کسی مشتاق نیست.
    ما رو باش فکر کردیم دوستان مشتاق یادگیری cmsis هستن.اما گویا دوستان فقط تو این فکرن که از این میکرو بپرن به یه میکرروی دیگه.اخه مگه lpc چی نداره که همه میخواین stm یاد بگیرین؟
    فکر کنم فردا که LM بیاد همه دوباره STM رو بیخیال شن برن دنبال LM .بیخیال

  12. کاربران : 12 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  13. #8
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    اسی جان نباید ذهنتو درگیر این حرفا کنی ! به نظر من بزرگترین سود این کاری که می کنی به خودت می رسه !
    چون خودت رو مجبور می کنه بری دنبالش و مطلب بنویسی و حواست همش به اینه که چند نفر منتظر مطلبت هستند که واقعا هم هستن اگه به کارت ادامه بدی می بینی کم کم بچه ها هم میان . ولی مطمئن باش حتی اونایی که نه پست می دن نه تشکر ، حتما نوشه هاتو می خونن . یا علی ...

  14. کاربران : 17 تشکر کرده اند از شما sigma-mx برای ارسال این پست سودمند:


  15. #9
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    داداش sigma خدایی دمت گرم.قوت قلبی دادی از پست بعد کتابخونه ی pinsel شروع میکنم.

  16. کاربران : 12 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  17. #10
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    توضیحات لایبری:
    همه دوستان میدونن که در میکرو های lpc یک پایه میتونه تا 4 کاربرد مختلف داشته باشه.مثلا پایه ی(به فرض میگم چون الان ترتیب پایه های 1768 رو ندارم)25 میکرو میتونه هم به صورت port2.4 عمل کنه یا به صورت ورودی adc یا sda برای i2c0(بازم میگم که مثلا.....)
    برای اینکه بتونیم این پایه رو برای هریک از این کاربردها آماده کنیم میبایست
    رجیستر PINSEL مربوطه رو دستکاری کنیم.همچنین برای اینکه وضعیت PULLUP / PULLDOWN/OPEN DRAIN بودن پایه رو مشخص کنیم باید با رجیسترهای PINMODE ور بریم که واقعا اعصاب خورد کنه.

    ما واسه اینکه نخواهیم با رجیستر درگیر بشیم از CMSIS و لایبری PINSEL اون استفاده میکنیم.
    در اولین قدم لازمه لایبری اون رو به برنامه اضافه کنیم .پس داریم


    [PHP]#include"lpc17xx_pinsel.h"[/PHP]
    حالا برای استفاده از این لایبری بایستی یه متغیر جدید تعریف کنیم که کمی با متغیرایی که قبلا دیدید فرق داره.دلیلشم اینه که در cmsis برای راحتی بیشتر برنامه نویس یه سری متغیر های جدید که همگی از نوع ساختار هستند ایجاد شده .وارد بحث نشیم بهتره
    پس حالا مینویسیم که:

    PINSEL_CFG_Type VarName ;
    PINSEL_CFG_Type pincfg
    متغیری که معفی کردیم دارای چندین پارامتره که تک تک بهش اشاره میکنیم

    pincfg.Portnum= 0/4
    این قسمت باید شماره پورت پایه مورد نظر رو بنویسین که بین 0 تا 4 هستش
    pincfg.Pinnum=0/31
    در این قسمت شماره پایه مورد نظر قرار میگیره که بین 0 تا 31 هستش

    pincfg.Funcnum= 0/4
    در این قسمت شماره تابعی که میخواهید پین مورد نظر در اون حالت قرار بگیره وارد میشه
    برای تمامی پینها gpio به عنوان شماره تابع صفر در نظر گرفته شده.مثلا برای adc در مثال فرضی بالا عدد2
    و برای sda شماره تابع 3 در نظر گرفته شده.شما میتونید از روی دیتاشیت بفهمید که شماره تابع مورد نظرتون چیه هستش.
    pincfg.Pinmode = 0/4
    در این قسمت میتونید pullup یا pulldown یا opendrain بودن اون پین رو مشخص کنید
    برای pullup شدن عدد 0
    برای pulldown شدن عدد 3
    برای opendrain شدن عدد2

    رو قرار بدین . می بینید که برای عدد 1 حالتی وجود نداره
    .
    پارامتر بعدی داریم
    pincfg.Opendrain= 0/1
    در این حالت تنها اگر در قسمت pincfg.pinmode عدد 2 رو قرار دادین توی این پارامتر عدد 1 رو بزارین
    در غیر این صورت عدد 0 بزارین.که نشون میده این پین از داخل pullup یا pulldown داره یا نه.


    تو این مرحله با تابع زیر کارمون رو کامل میکنیم و تغییرات خواسته شده رو به پین مورد نظر اعمال میکنیم.
    PINSEL_ConfigPin(&pincfg
    این لایبری توابع دیگه ایهم داره که مربوط به i2c هست و در قسمت خودش بهش میپردازم.
    اینم یه مثال واسه برنامه
    [PHP] * Init ADC pin connect
    * AD0.2 on P0.25
    */
    PinCfg.Funcnum = 1;
    PinCfg.OpenDrain = 0;
    PinCfg.Pinmode = 0;
    PinCfg.Pinnum = 25;
    PinCfg.Portnum = 0;
    PINSEL_ConfigPin(&PinCfg);[/PHP]

    تموم شد .دوستان اگه خوششون اومد و خواستن ادامه بدم یه یا مولا علی بگن که منتظرم.



  18. #11
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    اسی جان مگه برای کار با gpio ، لایببری بنام gpio نداره ؟

  19. تشکرها از این نوشته :


  20. #12
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sigma-mx نمایش پست ها
    اسی جان مگه برای کار با gpio ، لایببری بنام gpio نداره ؟
    آره داداشم داره .لایبری pinselزمانی استفاده میشه که بخواهین پینها رو واسه کاری غیر از gpio استفاده کنین مثلا واسه adc یا کاربردای دیگه مثل i2c. البته اینم بگم که ممکنه شما بخوایین مثلا پینها رو در حالتgpio البته با مقاومت pulldown استفاده کنین .در همچین حالتی هم بایست از این لایبری استفاده کنین.
    به این صورت (مثلا واسه پورت 2 پین 12 داریم
    pincfg.Portnum=2
    pincfg.Pinnum=12
    pincfg.Pinfunc=0
    pincfg.Pinmode=2
    pincfg.Opendrain=0
    PINSEL_ConfigPin(&pincfg
    مشکلی بود در خدمتم داداش............

  21. کاربران : 11 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  22. #13
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2007
    نام
    محسن خاشعی
    نوشته ها
    22
    تشکر
    8
    تشکر شده 105 بار در 9 پست

    پیش فرض

    اسی جان اگه بخوایم پین ها رو دسته ای تغییر بدیم چیکار کنیم ؟
    مثلا 5 تا پین رو با هم ؟

  23. کاربران : 2 تشکر کرده اند از شما pumper برای ارسال این پست سودمند:


  24. #14
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esi_52000 نمایش پست ها
    نه مثل اینکه کسی مشتاق نیست.
    ما رو باش فکر کردیم دوستان مشتاق یادگیری cmsis هستن.
    سلام. آقا چرا مشتاق هستیم کی گفته نیستیم!!!
    ولی مثلا خود من هنوز برد 1768 ندارم که کاری انجام بدهم. و خوب البته در مورد تهیه این برد هم چند تا دغدغه دارم. 1- برد 2378 فکر می کردم طبق مطالب گفته شده فرکانس پالس دهی پایه های خروجی اش 15 مگ باشه ولی دیدیم که انگار سرمون کلاه رفته! و عملا بیش از 2-3 مگ با تایمر نمیشه برای همین این اطمینان در مورد 1768 حاصل باید بشه که باز نگیم فرکانسش 100 مگه بعد بیایم ببینیم ای بابا ... 2- این شروع آموزش های 1768 را دچار ایراد و شک شدم که منظور از اینکه شروع میشه مانند قبله یا اینکه دیگه منحصرا در کلاس های آنلاین مطالب گفته میشه و دیگه در سایت کسی آموزشی را ارائه نمیکنه و اگه کسی مثل شما کاری بکنه یا کسی استقبالی نمی کنه یا اگه مثل من سوالی بکنه ارجاعش میدهند به اینکه در کلاس ها شرکت کنیم. کدوم؟
    نقل قول نوشته اصلی توسط esi_52000 نمایش پست ها
    گویا دوستان فقط تو این فکرن که از این میکرو بپرن به یه میکرروی دیگه.اخه مگه lpc چی نداره که همه میخواین stm یاد بگیرین؟
    فکر کنم فردا که LM بیاد همه دوباره STM رو بیخیال شن برن دنبال LM .بیخیال
    بله مورد سوم همینه که این برد 1768 هم تهیه شد و کاری هم به طور جمعی آغاز شد. حالا باز یکی یه جایی چشمش به یه میکرو دیگه می افته و میاد تو انجمن طوفان به پا می کنه که آی چرا نشستید بیاید یه برد برا این میکرو بزنیم که .... همه هم قبلی ها را ول می کنند میرند سراغ این جدیده و این وسط یکی مثل من اگه در مورد قبلی ادامه بده یا سوالی مطرح کنه میبینه کسی دیگه نیست و همه میگن مهندس دیگه میکرو ... قدیمی شده بیا این را کار کن!! در حالی که مثلا ارتباطاتی مثل یواس بی و ssp و اترنت و ... باقی مونده که کسی پایه نیست
    یه تعداد هم برد قبلیشون مثلا سریالش سوخته دیگه حس همکاری ندارن و این جور مسایل

  25. کاربران : 5 تشکر کرده اند از شما mzarkoob برای ارسال این پست سودمند:


  26. #15
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pumper نمایش پست ها
    اسی جان اگه بخوایم پین ها رو دسته ای تغییر بدیم چیکار کنیم ؟
    مثلا 5 تا پین رو با هم ؟
    سلام ببخشید دو سه روز دسترسی نداشتم به اینترنت نمیتونستم جواب بدم .
    برای این کار مثل پایین عمل کن داداشم.
    [PHP]PINSEL_CFG_Type pincfg;
    pincfg.portnum=0 ;
    pincfg.funcnum=0 ;
    pincfg.pinmode=3 ;
    pincfg.opendrain=0 ;
    pincfg.pinnum=0 ;
    PINSEL_ConfigPin(&pincfg) ;
    pincfg.pinnum=1 ;
    PINSEL_ConfigPin(&pincfg);
    pincfg.pinnum=2 ;
    PINSEL_ConfigPin(&pincfg);
    pincfg.pinnum=3 ;
    PINSEL_ConfigPin(&pincfg);
    pincfg.pinnum=4 ;
    PINSEL_ConfigPin(&pincfg);[/PHP
    ]در مثال بالا پایه های 0 تا 4 پورت 1 در حالت pulldown پیکربندی شدن.
    سوالی بود در خدمتم..........................


  27. کاربران : 9 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  28. #16
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    نقل قول نوشته اصلی توسط mzarkoob نمایش پست ها
    سلام. آقا چرا مشتاق هستیم کی گفته نیستیم!!!
    ولی مثلا خود من هنوز برد 1768 ندارم که کاری انجام بدهم. و خوب البته در مورد تهیه این برد هم چند تا دغدغه دارم. 1- برد 2378 فکر می کردم طبق مطالب گفته شده فرکانس پالس دهی پایه های خروجی اش 15 مگ باشه ولی دیدیم که انگار سرمون کلاه رفته! و عملا بیش از 2-3 مگ با تایمر نمیشه برای همین این اطمینان در مورد 1768 حاصل باید بشه که باز نگیم فرکانسش 100 مگه بعد بیایم ببینیم ای بابا ... 2- این شروع آموزش های 1768 را دچار ایراد و شک شدم که منظور از اینکه شروع میشه مانند قبله یا اینکه دیگه منحصرا در کلاس های آنلاین مطالب گفته میشه و دیگه در سایت کسی آموزشی را ارائه نمیکنه و اگه کسی مثل شما کاری بکنه یا کسی استقبالی نمی کنه یا اگه مثل من سوالی بکنه ارجاعش میدهند به اینکه در کلاس ها شرکت کنیم. کدوم؟
    بله مورد سوم همینه که این برد 1768 هم تهیه شد و کاری هم به طور جمعی آغاز شد. حالا باز یکی یه جایی چشمش به یه میکرو دیگه می افته و میاد تو انجمن طوفان به پا می کنه که آی چرا نشستید بیاید یه برد برا این میکرو بزنیم که .... همه هم قبلی ها را ول می کنند میرند سراغ این جدیده و این وسط یکی مثل من اگه در مورد قبلی ادامه بده یا سوالی مطرح کنه میبینه کسی دیگه نیست و همه میگن مهندس دیگه میکرو ... قدیمی شده بیا این را کار کن!! در حالی که مثلا ارتباطاتی مثل یواس بی و ssp و اترنت و ... باقی مونده که کسی پایه نیست
    یه تعداد هم برد قبلیشون مثلا سریالش سوخته دیگه حس همکاری ندارن و این جور مسایل
    سلام داداش .ممنون که توجه داشتین حرف دلمون رو زدی
    یکی از اشتباهات دوستان اینه که فکر میکنن همه چیز رو باید سطحی یاد بگیرن و بیخیالش بشن.من یه سرچ کوچیک زدم تو اینترنت و دیدم که میکرو های lpc با cortex_m3 از جمله ی بهترینها هستند و با توجه به اینکه رجیسترها توی این سری معمولا تغییری ندارن براحتی میشه از دانشتون در مورد یک خانواده در سایر خانواده ها استفاده کرد پس نیازی نیست
    که ما هنوز lpc رو یاد نگرفته بپریم به st یا هر چیز دیگه ای.ببخشید رفتم رو منبر

    راستی منم برد ندارم.اصلا پولشو ندارم............امان از فقر............

    اینم بگم cmsis مربوط به 1768 خیلی خیلی شبیه 1313 هستش.
    من تقریبا دل و روده ی این cmsis 1768 رو در اوردم و کم کم میزارمش.
    من تا آخر این آموزش هستم

  29. کاربران : 18 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  30. #17
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    داداش مهدی(آقای مهدی زرکوب......البته اگه عزیز دیگه ای هم میخواد کمک کنه خوشحال میشیم دوستان ) یه پیشنهاد دارم .اگه پایه بودی یه یا علی بگو داداش.
    من با cmsis قسمتای زیر رو راه اندازی کردم و قول میدم اونو کامل توضیح بدم.
    GPIO
    PINSEL
    ADC
    DAC
    RTC
    RIT
    I2C
    TIMER/COUNTER
    داداش شما میتونی زحمت قسمتای SPI و UART رو بکشی.منتظرم.اگه جوابت مثبت بود بگو تا من مطالب رو از فردا شروع کنم داداش

  31. کاربران : 11 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  32. #18
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    سلام اسی جان . اینکه گفتی برد نداری یعنی چه ؟ یعنی کلا بردشو نداری یا این بردی که کویر میفروشه رو نداری ؟؟؟ من خودم هم ندارم ولی برام سوال شد ! یعنی تا حالا با شبیه ساز کیل کار کردی ؟
    در مورد حرف شما و آقای زرکوب هم من کاملا موافقم . الانم که دارم رو st کار می کنم بازم می گم خیلی معماری nxp قشنگه ! واقعا با رجیستر هاش حال کردم . البته هنوز زیاد کار باهاش نکردم ولی نحوه مقدار دادن به رجیستر و.. خیلی جالبه . فقط تو قسمت gpio ببینید چند روش برای مقدار دادن به پورت داره !! 8 بیتی 16 بیتی 32 بیتی . کلی حالت ! چقدر برنامه نویسی رو راحت می کنه ! من دیگه سراغ arm7 نمی رم ! واقعا کرتکس یه چیز دیگست . دو تا برد یکی برای stm32 یکی هم برای lpc1313 سفارش دادم . برسه هر دو رو شروع می کنم . خوشبختانه 1313 هم مثل همین 1768 هست . برد 1768 هم سعی می کنم تهیه کنم . البته هدر برد رو .

  33. تشکرها از این نوشته :


  34. #19
    کاربر فعال esi_52000 آواتار ها
    تاریخ عضویت
    Oct 2009
    نام
    اسماعیل طاهری
    نوشته ها
    365
    تشکر
    220
    تشکر شده 943 بار در 200 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sigma-mx نمایش پست ها
    سلام اسی جان . اینکه گفتی برد نداری یعنی چه ؟ یعنی کلا بردشو نداری یا این بردی که کویر میفروشه رو نداری ؟؟؟ من خودم هم ندارم ولی برام سوال شد ! یعنی تا حالا با شبیه ساز کیل کار کردی ؟
    در مورد حرف شما و آقای زرکوب هم من کاملا موافقم . الانم که دارم رو st کار می کنم بازم می گم خیلی معماری nxp قشنگه ! واقعا با رجیستر هاش حال کردم . البته هنوز زیاد کار باهاش نکردم ولی نحوه مقدار دادن به رجیستر و.. خیلی جالبه . فقط تو قسمت gpio ببینید چند روش برای مقدار دادن به پورت داره !! 8 بیتی 16 بیتی 32 بیتی . کلی حالت ! چقدر برنامه نویسی رو راحت می کنه ! من دیگه سراغ arm7 نمی رم ! واقعا کرتکس یه چیز دیگست . دو تا برد یکی برای stm32 یکی هم برای lpc1313 سفارش دادم . برسه هر دو رو شروع می کنم . خوشبختانه 1313 هم مثل همین 1768 هست . برد 1768 هم سعی می کنم تهیه کنم . البته هدر برد رو .
    سلام داداش sigma .
    داداش من کلا هیچ بردی ندارم عزیز و فقط دارم از شبیه ساز استفاده میکنم .واقعیتشو بگم هزینه برد واقعا بالاست .فقط برد سایت 145 تومن داره درمیاد.جالب اینجاست که توی جنوب کشور
    اصلا lpc وجود نداره.
    داداش sigma اگه زحمت بکشی و برد 1313 رو به فرمت pdf آپلود کنی واقعا ممنون میشم. آخه من protel ندارم داداش. راستی در مورد QEI اطلاعاتی داری؟اصلا چی هست این .
    اینم بگم که توی سایت eca یه هدر برد 1768 هستش که قیمتش 35 تومن هستش.
    داداش یه نگاه بنداز شاید به دردت بخوره

  35. کاربران : 4 تشکر کرده اند از شما esi_52000 برای ارسال این پست سودمند:


  36. #20
    مدیر بخش STM32 sigma-mx آواتار ها
    تاریخ عضویت
    Nov 2009
    نام
    سعید شریفیان
    نوشته ها
    1,421
    تشکر
    804
    تشکر شده 2,520 بار در 978 پست

    پیش فرض

    سلام دادا چطوری ؟
    واقعا باید بهت خسته نباشید گفت . اونم بخاطر پشتکارت هست . من خودم هم هنوز برد رو ندارم و قبلا هم که یکم شروع کرده بودم با شبیه ساز بود . حقیقتش نمی دونم کارم درسته یا نه . ولی ترجیح می دم برد رو خودم طراحی کنم و آپشن های مورد نیازم رو روش بزارم . و واقعا هم اگه این کارو کنی میبینی چقدر هزینه هم میاد پایین و خب برد هم دیگه دست پخت خودته !
    در مورد 1313 بردی که زدم تنها یه هدر برد کوچیکه ! یکم از یه میکرو ی 40 پین عریضتر با 42 پین البته ! فقط روش خازن صافی و led پاور و پین هدر برای پروگرام هست و پایه هاش به ترتیب بیرون کشیده شده . و برد هم دو رو و متالیزه هست . هر دو برد st و 1313 رو گذاشتم بیاد تستش کنم و بعد بذارم رو سایت . ولی شما اگه می خوای ببینی مشکلی نیست دادا . ولی دو رو رو چطوری برات pdf کنم ؟ هر طور می خوای بگو .
    در مورد آخر هم QEI یکی از ماژول های پردازش سیگنال در میکرو های DSP دار مثل dsPIC هست و مخفف Quadrature Encoder Interface هست . بنابر اسمش مربوط به انکودر ها ست . اگه این عنوان لاتین رو تو نت بگردی فورا یکی دوتا pdf از dsPIC پیدا میکنی دادا . موفق باشی

  37. کاربران : 3 تشکر کرده اند از شما sigma-mx برای ارسال این پست سودمند:


صفحه 1 از 18 123456789101112131415161718 آخرینآخرین

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

  1. پاسخ: 6
    آخرين نوشته: 05-03-2014, 18:24
  2. کاربرد و معنی دستورات بسکام به شکلی ساده
    توسط mapmap در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 7
    آخرين نوشته: 07-12-2013, 00:52
  3. [سوال] عمل کرد دستور شیفت د
    توسط arvin2009 در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 04-11-2013, 23:03
  4. دستور ارسال کاراکتر در spi با میکرو arm
    توسط Niloufar.Male در انجمن AT91 series (ATMEL)
    پاسخ: 6
    آخرين نوشته: 25-10-2013, 23:20
  5. ادامه اجرای دستوراته قبل از خاموش شدن میکرو
    توسط mohsenal در انجمن گفت و گوي آزاد
    پاسخ: 2
    آخرين نوشته: 07-09-2013, 22:09

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

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