اطلاعیه

Collapse
No announcement yet.

درخواست یک تابع واسه ایجاد تاخیر

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

    درخواست یک تابع واسه ایجاد تاخیر

    عرض سلام
    دوستان یه سوال دارم
    از چه تابعی واسه ایجاد Delay در حد میلی ثانیه استفاده میکنید؟
    یکم سرچ کردم بعضی جاها یه نوع تابع استفاده میکنند که از تایمر استفاده میکنه مثل این:

    [code=c]void delay32Ms(uint8_t timer_num, uint32_t delayInMs)
    {
    if (timer_num == 0)
    {
    /* setup timer #0 for delay */
    LPC_TMR32B0->TCR = 0x02; /* reset timer */
    LPC_TMR32B0->PR = 0x00; /* set prescaler to zero */
    LPC_TMR32B0->MR0 = delayInMs * ((SystemCoreClock/(LPC_TMR32B0->PR+1)) / 1000);
    LPC_TMR32B0->IR = 0xff; /* reset all interrrupts */
    LPC_TMR32B0->MCR = 0x04; /* stop timer on match */
    LPC_TMR32B0->TCR = 0x01; /* start timer */

    /* wait until delay time has elapsed */
    while (LPC_TMR32B0->TCR & 0x01);
    }
    }[/code]

    بعضیا هم از یه حلقه ساده استفاده میکنند مثل این:
    [code=c]void delay (unsigned long tick) { /* Delay Function */
    unsigned long dly = tick*3000;
    while(dly--);
    }[/code]

    کدومش بهتره؟به جهت داشتن دقت و استفاده کمتر از منابع...
    اگه نمونه کدی واسش دارید ممنون میشم به من هم بدید... :nice:
    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

    www.intelart.ir


    ساخت کنترلر دما PID فازي با AVR [آموزشی]

    #2
    پاسخ : درخواست یک تابع واسه ایجاد تاخیر

    به نظرم از راه حل دوم استفاده کن. با یه تست ساده LED چشمک زن هم یا حتی شبیه سازی برنامه می تونی زمان دقیقش رو در بیاری. خیلی ساده و بدون دردسر و حلقه بی نهایت و مشکل سخت افزاری، همیشه درست کار می کنه.

    بیایید با Google آشتی کنیم!

    دیدگاه


      #3
      پاسخ : درخواست یک تابع واسه ایجاد تاخیر

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

      www.intelart.ir


      ساخت کنترلر دما PID فازي با AVR [آموزشی]

      دیدگاه


        #4
        پاسخ : درخواست یک تابع واسه ایجاد تاخیر

        نوشته اصلی توسط Mahdi.Faani
        متشکرم
        نظر خودم اینه که اون قسمت حلقه بینهایت رو با اسمبلی بنویسم که بتونم زمان دقیقش رو محاسبه کنم...ولی از دستورات اسمبلی ARM مطمئن نیستم...
        اگه AVR بود که خیلی راحت سه سوته حلش میکردم ولی اینجا چون تازه واردم هنوز یکم سردرگمم
        خودتون از چه تابعی استفاده میکنید؟
        همین که نوشتی بسه دیگه.
        بیایید با Google آشتی کنیم!

        دیدگاه


          #5
          پاسخ : درخواست یک تابع واسه ایجاد تاخیر

          نوشته اصلی توسط محمد رستمی
          همین که نوشتی بسه دیگه.
          :biggrin: خب این حساب کتابش چحوریه؟اون عدد 3000 از کجا اومده؟

          در مورد SysTickTimer اطلاعات دارید؟
          اینجا یه صحبتایی در موردش شده...ولی من خیلی سر در نیاوردم..
          تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

          www.intelart.ir


          ساخت کنترلر دما PID فازي با AVR [آموزشی]

          دیدگاه


            #6
            پاسخ : درخواست یک تابع واسه ایجاد تاخیر

            نوشته اصلی توسط Mahdi.Faani
            :biggrin: خب این حساب کتابش چحوریه؟اون عدد 3000 از کجا اومده؟

            در مورد SysTickTimer اطلاعات دارید؟
            اینجا یه صحبتایی در موردش شده...ولی من خیلی سر در نیاوردم..
            توصیه می کنم یکم بیشتر مطالعه بفرمایید حتماً به جواب می رسید. البته با سعی و خطا و شبیه سازی و تست عملی هم می تونید نتیجه بگیرید.
            SysTick هم یه تایمره مثه بقیه تایمرها. سرِ وقتش وقفه میده. همین
            بیایید با Google آشتی کنیم!

            دیدگاه


              #7
              پاسخ : درخواست یک تابع واسه ایجاد تاخیر

              برای تاخیر دقیق یا از تایمر استفاده کنید یا systick ،
              در سمپل های استاندارد که من دیدم عمدتا از systick استفاده شده،
              با systick شما میتونید پایه زمانی در حد میلی ثانیه یا میکرو ثانیه درست کنید و تاخیر دقیق سخت افزاری داشته باشید. یکی از کار های systick همینه...
              هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

              دیدگاه

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