اطلاعیه

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