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





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









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









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





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

نمایش نتایج: از 1 به 10 از 10
  1. #1
    2008/12/31
    62
    1

    تنظیم کلاک STM32F103RET6 روی کریستال خارجی

    سلام، عیدتون مبارک
    من یک برنامه ساده چشمک زن با ال ای دی و STM32F103RET6 نوشتم و از کریستال خارجی 16 مگاهرتزی استفاده میکنم ولی در عمل نمیدونم چرا تاخیر یک ثانیه ای رو کمتر حساب میکنه، یعنی به جای اینکه هر یک ثانیه چشمک بزنه زودتر چشمک میزنه. تنظیمات خاصی نیاز داره؟
    البته در قسمت OPTION FOR TARGET و در قسمت TARGET فرکانس رو روی 16 مگاهرتز قرار دادم. یعنی مشکل از کجاست؟
    البته اینو بگم که نمیخواام با CUBEMX ;کار کنم چون هر چی مثال بود با این نرم افزار بود
    کد:
    
    
    #include "stm32f10x.h"
    #include "stm32f10x_gpio.h"
    #include "stm32f10x_rcc.h"
    
    
    void _delay_ms(uint16_t ms);
    
    
    int main(){
        
        GPIO_InitTypeDef GPIO_InitStructure;    
        
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);    
    
    
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        while(1){
          GPIO_SetBits(GPIOA, GPIO_Pin_0);
            _delay_ms(1000);
          GPIO_ResetBits(GPIOA, GPIO_Pin_0);
            _delay_ms(1000);
        }
    }
    
    
    void _delay_ms(uint16_t ms){
        uint32_t j=0;
        j = ms * 14400;
        while(j--);
    }
    ویرایش توسط mehran032 : 2018/03/26 در ساعت 18:30
  2. #2
    2008/12/31
    62
    1

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

    با عوض کردن کریستال از 16 مگاهرتز به 8 مگاهرتز الان ال ای دی یکمی دیرتر چشمک میزنه!!! یعنی در حدود یک ثانیه و 100 میلی ثانیه!
    چرا دقیق نیست تاخیرها؟
  3. #3
    2008/11/04
    524
    529

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

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

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

    عضویت

    با عوض کردن کریستال از 16 مگاهرتز به 8 مگاهرتز الان ال ای دی یکمی دیرتر چشمک میزنه!!! یعنی در حدود یک ثانیه و 100 میلی ثانیه!
    چرا دقیق نیست تاخیرها؟
    سلام،
    به احتمال خیلی زیاد، کلاک میکروت درست تنظیم نشده، و اون مقداری که انتظار داری، نیست!
    مثلا اگه دیباگ داری مقادیر مربوط به PLL و سورس کلاک رو چک کن!
    اگه همه درست بودند یه نگاهی هم به این بحث بنداز در همین رابطه است:

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

    عضویت

    ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙
  4. #4
    2008/12/31
    62
    1

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

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

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

    عضویت

    سلام،
    به احتمال خیلی زیاد، کلاک میکروت درست تنظیم نشده، و اون مقداری که انتظار داری، نیست!
    مثلا اگه دیباگ داری مقادیر مربوط به PLL و سورس کلاک رو چک کن!
    اگه همه درست بودند یه نگاهی هم به این بحث بنداز در همین رابطه است:

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

    عضویت

    سلام، ممنون. بله دیباگر دارم، ببخشید من اولین بار هستش که دارم با stm کار میکنم، از کجا باید این چک رو انجام بدم؟ مقادیر pll در کدوم فایل و هدر قرار دارند؟
  5. #5
    2008/12/31
    62
    1

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

    یک سوال دیگه که به نظرتون اصلا اون تابع DELAY درسته و مقدار 14400 از کجا اومده؟
  6. #6
    2008/11/04
    524
    529

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

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

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

    عضویت

    یک سوال دیگه که به نظرتون اصلا اون تابع DELAY درسته و مقدار 14400 از کجا اومده؟
    کسی که تابع رو نوشته، اومده با توجه به کلاک پردازنده، از مدت زمان لازم برای اجرای خطِ
    while(j--);////////////////////////delay
    یه برآوردی کرده و دیده که اگه مثلا 14400 بار این خط تکرار بشه، زمان 1 میلی ثانیه رو ایجاد میکنه!
    بعد اون آرگومانی رو که به عنوان تعداد میلی ثانیه ها دریافت کرده در این مقدار ضرب میکنه و تأخیر نهایی رو ایجاد میکنه!
    که البته فقط با همون کلاکی که نویسنده تابع تنظیم کرده بوده، دقیق جواب میده!
    ... .
    راجع به دیباگر، هم باید بگی که با کدوم IDE کار میکنی، من فقط با Keil کار کردم!

    ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙
  7. #7
    2008/12/31
    62
    1

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

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

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

    عضویت

    کسی که تابع رو نوشته، اومده با توجه به کلاک پردازنده، از مدت زمان لازم برای اجرای خطِ
    while(j--);////////////////////////delay
    یه برآوردی کرده و دیده که اگه مثلا 14400 بار این خط تکرار بشه، زمان 1 میلی ثانیه رو ایجاد میکنه!
    بعد اون آرگومانی رو که به عنوان تعداد میلی ثانیه ها دریافت کرده در این مقدار ضرب میکنه و تأخیر نهایی رو ایجاد میکنه!
    که البته فقط با همون کلاکی که نویسنده تابع تنظیم کرده بوده، دقیق جواب میده!
    ... .
    راجع به دیباگر، هم باید بگی که با کدوم IDE کار میکنی، من فقط با Keil کار کردم!

    ممنونم، بله منم با keil کار میکنم، ممنون میشم بهم کمک کنید که چطور اون تنظیماتی که گفتین رو انجام بدم
  8. #8
    2008/10/29
    2,101
    238

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

    سلام
    شما نه تنظیمات کلاک Core رو ست کردین نه فرکانس باس ها و همچنین نه PLL ها رو
    پیشنهاد من استفاده از CUBEMX برای دیدن چگونگی پخش سیگنال کلاک در کل تراشه هست و سپس با دستورات CMSIS مربوط به کتابخانه RCC کلاک ها رو ست کنین.
  9. #9
    2018/02/17
    دزفول
    46
    10

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

    سلام اون 14400 برای اینکه فرکانس شما 72 مگا هرتز هست یعنی 72میلیون کلاک برابر میشود با یک ثانیه پس برای یک میلی ثانیه (یک هزارم ثانیه) میشود 72 هزار کلاک. در نتیجه درون تابع دیلی که تعریف میکنیم باید برای هر میلی ثانیه 72 هزار کلاک بگذرد و از آنجا که هر بار اجرای حلقه while 5 کلاک زمان میبرد پس از تقسیم عدد 72000/5داریم = 14400
    و در مورد تنظیمات کلاک اینکه شما باید کریستا خارجی رو فعال کنید و در صورت استفاده از pll آن را فعال کنید که تابعش رو براتون اینجا میذارم این رو به برنامتون اضافه کنید.

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

    عضویت

  10. #10
    2008/12/31
    62
    1

    پاسخ : تنظیم کلاک STM32F103RET6 روی کریستال خارجی

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

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

    عضویت

    سلام
    شما نه تنظیمات کلاک Core رو ست کردین نه فرکانس باس ها و همچنین نه PLL ها رو
    پیشنهاد من استفاده از CUBEMX برای دیدن چگونگی پخش سیگنال کلاک در کل تراشه هست و سپس با دستورات CMSIS مربوط به کتابخانه RCC کلاک ها رو ست کنین.
    سلام، بله نمیدوم باید در کدوم قسمت این تنظیمات رو انجام بدم، با CUBEMX به راحتی میتونم تنظیم کنم و همه چی درسته ولی نمیخوام به دلایلی از CUBEMX استفاده کنم چون بعدا برام محدودیت ایجاد میشه

    دلیل: ادغام دو پست برای جلوگیری از اسپم

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

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

    عضویت

    سلام اون 14400 برای اینکه فرکانس شما 72 مگا هرتز هست یعنی 72میلیون کلاک برابر میشود با یک ثانیه پس برای یک میلی ثانیه (یک هزارم ثانیه) میشود 72 هزار کلاک. در نتیجه درون تابع دیلی که تعریف میکنیم باید برای هر میلی ثانیه 72 هزار کلاک بگذرد و از آنجا که هر بار اجرای حلقه while 5 کلاک زمان میبرد پس از تقسیم عدد 72000/5داریم = 14400
    و در مورد تنظیمات کلاک اینکه شما باید کریستا خارجی رو فعال کنید و در صورت استفاده از pll آن را فعال کنید که تابعش رو براتون اینجا میذارم این رو به برنامتون اضافه کنید.

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

    عضویت

    سلام، ممنون. البته این تابع رو اضافه کردم ولی تغییری ایجاد نمیشه، البته با تغییر مقدار RCC_PLLMul_9 به مقدار 8 یا 7 یا 10 سرعت چشمک زدن تغییر میکنه ولی هیچ کدوم یک ثانیه فیکس نمیشه
نمایش نتایج: از 1 به 10 از 10

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

  1. پاسخ: 1
    آخرين نوشته: 2016/06/01, 19:48
  2. تنظیم فیوز بیت بر روی کریستال خارجی در بسکام
    توسط alirazmjoo در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2014/10/24, 11:15
  3. کمک سوختن میکرو ها در تنظیم کریستال خارجی
    توسط shadmehr20 در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2014/07/17, 20:39
  4. تنظیم کریستال خارجی
    توسط زوار در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2010/09/20, 20:07
  5. تنظیم هیوز بیت رو کریستال خارجی
    توسط syber_pro در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2009/04/19, 14:09

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

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

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

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

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