اطلاعیه

Collapse
No announcement yet.

فرکانس متر با تایمر یک

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

    فرکانس متر با تایمر یک

    سلام به قطعه کد زیر توجه کنید
    GPIOA->MODER |=(1<<23);
    GPIOA->AFR[1] |=(1<<13);
    TIM1->PSC =479;
    TIM1->CR1 |=TIM_CR1_ARPE;
    //TIM1->CCR2 |=0xFFFF;
    TIM1->CCMR2 |=(1<<8) | (1<<12) | (1<<13);
    TIM1->CCER |=(1<<12);
    //TIM1->SMCR |=0x80;
    TIM1->CR1 |=TIM_CR1_CEN;

    کد های بالا تنظیمات بود که پرسکالر در نهایت روی صفر قرار می گیره یعنی بیش ترین سرعت ممکن که برای میکروی stm32f030k6 این مقدار 48 مگ هست
    حالا به روش زیر مقدار دوره تناوب رو به دست میارم
    TIM1->CNT=0;
    //while((TIM1->SR & 0x0010) == 0x0010){}
    while((TIM1->SR & 0x0010) == 0){}
    a=TIM1->CCR4;
    //while((TIM1->SR & 0x1000) == 0x0010){}
    while((TIM1->SR & 0x0010) == 0){}
    b=TIM1->CCR4;
    c=b-a;
    //delay_us(100);

    توجه مهم و مسئله اصلی اگر قطعه کد بالا بدون هیچ تاخیری مثل تاخیر 100 میکروثانیه آخر که گذاشتم نوشته بشه یا اینکه بعدش هیچ تابع دیگری نیاد درست کار می کنه و مقدار زمان را به خوبی در c
    یه چیز عجیب دیگه اینه که مقدار پرسکالر رو چه صفر بذارم چه هر عدد دیگه تو مقادیر خروجی فرقی نمی کنه و انگار که مقدار پرسکالر روی 0 باقی مونده باشه
    داریم ولی به محض اینکه یه تابع یا تاخیری در روند برنامه بیاد کلا قاطی می کنه و مقدار رو نشون نمیده از stm studio استفاده می کنم
    به نظرتون مشکل کجاست ؟
    جدیدترین ویرایش توسط seyed saeed; ۱۳:۲۹ ۱۳۹۸/۰۹/۲۷.
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور های غربی انتقال تجربیات و دانش به افراد مبتدی یک پیشرفت محسوب شده و به آن مدیریت دانش می گویند. ولی متاسفانه این فرهنگ هنوز در کشور ایران رایج نشده است !!!

    #2
    پاسخ : فرکانس متر با تایمر یک

    سلام چرا از capture استفاده نمی کنی؟

    دیدگاه


      #3
      پاسخ : فرکانس متر با تایمر یک

      به نظر منم بهتره از caputre استفاده کنی. اگه مایل هستی من نمونه کدی که خودم توش از Capture استفاده کردم رو بزارم برات
      [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

      دیدگاه


        #4
        پاسخ : فرکانس متر با تایمر یک

        پروژه فرکانس متر با درایور LL از فرکانس ۱۵ هرتز تا فرکانس 500khz
        [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

        دیدگاه

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