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





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









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









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





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

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2013/03/18
    babol
    1,387
    651

    رجیستر در stm چگونه است؟

    دوستان مگه stm32 رجیسترهای 32 بیتی نداره؟؟
    پس چرا فقط 16 پایه برای هر پورت داره؟؟
    ما از باقی رجیسترها چی استفاده میتونیم بکنیم؟؟یا چجور باید دسترسی داشته باشیم.
    مثلا اگه به غیر از کتابخونه هال بخواییم یه ال ای دی رو روشن کنیم باید چیکار کنیم؟؟

    یه سوال دیگه !!
    من وقتی دارم با stm کار میکنم باید حتما از کتابخونه hal تو iar استفاده کنم یا اینکه بدونه کتابخونه هم خودم میتونم کد بزنم ؟؟
    بهترین روش کدومه؟؟


    ممنونم.
    ویرایش توسط hosseinam : 2017/09/19 در ساعت 14:30
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)
  2. #2
    2010/08/19
    کردستان
    1,925
    894

    پاسخ : رجیستر در stm چگونه است؟

    در میکروکنترلرهای ARM استفاده از ریجسترها در مقایسه با میکروکنترلرهای 8 بیتی خیلی متفاوته. تفاوت از این لحاظ که واقعا تعدادشون زیاده و درگیر شدن مستقیم با اونها یه مقدار دشوار میشه.
    غیر از HAL کتابخانه های SPL هستن که خود شرکت ST برای هر سری روی سایتش قرار داده و می تونید استفاده کنید.
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
  3. #3
    2012/12/30
    بوشهر
    3,198
    1,100

    پاسخ : رجیستر در stm چگونه است؟

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دوستان مگه stm32 رجیسترهای 32 بیتی نداره؟؟...
    خب
    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...پس چرا فقط 16 پایه برای هر پورت داره؟؟...
    چرا نداشته باشه؟ چه مشکلی داره؟
    چه بسا شاید بهتر باشه. کی می دونه(هر واحد که با کلاک کار میکنه، انرژی مصرف میکنه. شاید دلیل بدی نباشه برای کاهش مصرف انرژی وقتی نیازی نداری از تعداد زیادی از GPIOها استفاده کنی). باید از شرکت سازنده پرسید.

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...ما از باقی رجیسترها چی استفاده میتونیم بکنیم؟؟یا چجور باید دسترسی داشته باشیم...
    کدوم ریجسترها؟
    برای دسترسی برو به هدر فایل میکروت. مثلا تو کامپایلر کیل من یه فایل هدر دارم به اسم stm32f10x.h که اگه برم توش اسم ریجسترها توش نوشته.

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...مثلا اگه به غیر از کتابخونه هال بخواییم یه ال ای دی رو روشن کنیم باید چیکار کنیم؟؟...
    با کتابخونه هال که انجام دادی برو ببین توش چی شده و با چه ریجسترهایی کار کردی. تابع هاشو ببین. راحت میفهمی چی شده. رفرنس مانوال رو هم می تونی بخونی.
    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...من وقتی دارم با stm کار میکنم باید حتما از کتابخونه hal تو iar استفاده کنم یا اینکه بدونه کتابخونه هم خودم میتونم کد بزنم ؟؟
    بهترین روش کدومه؟؟
    هیچ اجباری در استفاده از کتابخانونه ها نیست ولی به نظرم بهتره ازشون استفاده کنی(من استفاده میکنم). چون قبلا تست شده و جواب دادن و باگ هاش هم رفع شده.
  4. #4
    2013/03/18
    babol
    1,387
    651

    پاسخ : رجیستر در stm چگونه است؟

    نقل قول نوشته اصلی توسط روح الامین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    چرا نداشته باشه؟ چه مشکلی داره؟
    چه بسا شاید بهتر باشه. کی می دونه(هر واحد که با کلاک کار میکنه، انرژی مصرف میکنه. شاید دلیل بدی نباشه برای کاهش مصرف انرژی وقتی نیازی نداری از تعداد زیادی از GPIOها استفاده کنی). باید از شرکت سازنده پرسید.
    مثلا شما بیا به مگا32 نگاه کن ُ 8 بیت هست ُ هشت پین هم داره- ولی این 32 بیت هست و 16 پین داره ُ خوب از مابقی بیت ها کجا استفاده میکنی ؟؟

    روح الامین تازه وارد رجیسترها شدم هنوز فهمیدم چین اینا ُ ولی هنوز نگرفتم که چطور باید با اینا کار کرد !!مثلا عکس زیر رو ببین صفحه 170 یوزر منوال :


    این چرا 32 تا داره ُ اگه بخام ال ای دی روشن کنم باید چطور مقدار بدم به این رجیستر ؟؟

    گفتی یوزرمنوال - من دیتاشیت و یوزرمنوال رو کلا چاپ کردم دارم برای خوندن ُ ولی خوب تا جایی نمیگیرم چطور باید مقدار بدم .
    مثلا تو مگا64 برای روشن کردن ال ای دی میآییم اینحجوری عمل میکنیم :
    کد:
    #define LD_PORT PORTD
    #define LD_DDR DDRD
    
    void main(void)
    {
      //int i ;
      LD_DDR =0xff;
      LD_PORT = 0xff;
    یعنی نام رجیستر مشخص هست و بهش مقدار میدیم ُ حالا اینجا ... .


    نیازمند راهنمایی از دوستان .
    ممنونم.
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)
  5. #5
    2012/12/30
    بوشهر
    3,198
    1,100

    پاسخ : رجیستر در stm چگونه است؟

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مثلا شما بیا به مگا32 نگاه کن ُ 8 بیت هست ُ هشت پین هم داره- ولی این 32 بیت هست و 16 پین داره ُ خوب از مابقی بیت ها کجا استفاده میکنی ؟؟...
    حسین جان ببین الان هسته های آرم 64بیتی هم اومده. یعنی انتظار داری یه پورت خروجی داشته باشه با 64پین؟
    AVR روی بیشتر از 8 بیت نمی تونه عملیات انجام بده، پس پورت هاش همش 8 بیتی هستش. بیشتر نمی تونه. STM32 ما 32بیتی هستش و درسته که می تونه عملیات 32بیتی انجام بده ولی طراحش بنا به دلایل خودش گفته برای هر پورت خروجی 16 پین می ذارم. مشکلش چیه؟ 16 پین همزمان که کافیه.

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...
    روح الامین تازه وارد رجیسترها شدم هنوز فهمیدم چین اینا ُ ولی هنوز نگرفتم که چطور باید با اینا کار کرد !!مثلا عکس زیر رو ببین صفحه 170 یوزر منوال :


    این چرا 32 تا داره ُ اگه بخام ال ای دی روشن کنم باید چطور مقدار بدم به این رجیستر ؟؟
    مثلا می خواییم پین شماره 5 پورت B چشمک بزنه. بعد از مقدار دهی های اولیه، اینجوری وضعیت پین رو عوض میکنم:

    کد:
    GPIOB->ODR ^= GPIO_Pin_5;
                delay(0x7A1200);
                GPIOB->ODR ^= GPIO_Pin_5;
                delay(0x7A1200);
    کاری به تابع delay نداشته باش. این:
    GPIOB->ODR
    یعنی یه استراکتچر وجود داره که اسمش GPIOB
    هستش و توش یه متغییر داره که صداش زده. این متغییر ODR هستش که اسم این ریجستر هستش. تو رفرنس مانوال نگاه کن. پیداش میکنی. البته چون پویینتر هستش اینجوری صداش کرده. یعنی با <- صداش کرده.
    GPIO_Pin_5 هم که یه ماکرو هستش که اگه بری توی هدر stm32f10x_gpio می بینی مقدار داره. برو این هدر رو بین. اگه من نگاه کنم اینو نوشته:

    کد:
    #define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
    #define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
    #define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
    #define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
    #define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
    #define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
    #define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
    #define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
    #define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
    #define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
    #define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
    #define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
    #define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
    #define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
    #define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
    #define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
    #define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

    خب حالا می خوای بدونی ریجستر ODR چطوری ازش استفاده میشه. علاوه بر خوندن رفرنس مانوال می تونی بری و فایل stm32f10x_gpio.c رو ببینی. دقت کن که این هدر نیست. این یه فایل C هستش. فایل بالایی هم که گفتم هدرش هستش. تو این فایل C همه چیز تعریف شده. حالا من دنبال عبارت ODR می گردم و نگاه میکنم ببینم چطور و چه استفاده ای ازش شده و میشه. بعنوان مثال این رو میبینم:

    /**
    * @brief Writes data to the specified GPIO data port.
    * [MENTION=17545]para[/MENTION]m GPIOx: where x can be (A..G) to select the GPIO peripheral.
    * [MENTION=17545]para[/MENTION]m PortVal: specifies the value to be written to the port output data register.
    * @retval None
    */
    void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
    {
    /* Check the parameters */
    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

    GPIOx->ODR = PortVal;
    }


    کامنت های بالای تعریف تابع رو بخون. چی میفهمی ازش؟ حالا تابع رو ببین. به این خط کاری نداشته باش. ولش کن:

    کد:
     assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
    حالا روشن تر نیست؟ متوجه شدی چه استفاده ای ازش شده و چطوری و چرا؟ باقی قسمت ها رو هم همین طوری نگاه کن.
    تو عکسی که تو گذاشتی ریجستر CRL گذاشته شده. تو همین فایل بگرد و ببین چیکار کرده باهاش. رفرنس مانوال رو هم نگاه کن.

    نقل قول نوشته اصلی توسط hosseinam

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ...
    گفتی یوزرمنوال - من دیتاشیت و یوزرمنوال رو کلا چاپ کردم دارم برای خوندن ُ ولی خوب تا جایی نمیگیرم چطور باید مقدار بدم .
    مثلا تو مگا64 برای روشن کردن ال ای دی میآییم اینحجوری عمل میکنیم :
    کد:
    #define LD_PORT PORTD
    #define LD_DDR DDRD
    
    void main(void)
    {
      //int i ;
      LD_DDR =0xff;
      LD_PORT = 0xff;
    یعنی نام رجیستر مشخص هست و بهش مقدار میدیم ُ حالا اینجا ... .
نمایش نتایج: از 1 به 5 از 5

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

  1. رجیستر EMR
    توسط hasan_karsedighi در انجمن NXP
    پاسخ: 1
    آخرين نوشته: 2015/09/07, 22:52
  2. رجیستر ها
    توسط armiin در انجمن میکروکنترلرهای PIC
    پاسخ: 1
    آخرين نوشته: 2010/11/22, 08:04
  3. رجیستر های avr
    توسط umbra در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2008/10/25, 02:02
  4. شیفت رجیستر
    توسط masoodhashemy در انجمن مدار هاي ديجيتال
    پاسخ: 1
    آخرين نوشته: 2008/05/29, 17:12
  5. محل سی و دو رجیستر AVR
    توسط nasri_me در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2008/01/15, 02:51

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

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

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

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

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