NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4617 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 3 از 3

موضوع: کمک در مورد ایجاد تاخیر در کیل

  1. #1
    کاربر علاقه مند Cortex آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    28
    تشکر
    36
    تشکر شده 37 بار در 16 پست

    Icon17 کمک در مورد ایجاد تاخیر در کیل

    سلام
    چجوری میشه بوسیله configuration wizard کیل و هدر delay.h یک ثانیه دقیق رو درست کرد؟
    من از هدر delay.h مجله pmm3 استفاده کردم ولی هر یک ثانیش شده 4 ثانیه!!
    کریستالم هم 18.432mhz هست که تو تنظیماتش هم همین مقدارو قرار دادم.
    هرچی هم تو قسمت configuration wizard کیل pll divider یا pll multiplier رو کم و زیاد میکنم هیچ تغییری تو مقدار تاخیر ایجاد نمیشه!!
    مشکل از کجاست؟؟

    یه سوال دیگه:
    چرا تو این برنامه کلاک رو تقسیم بر 5 کرده؟ چون کیل به صورت دیفالت کلاک رو پنج برابر میکنه؟

    اینم هدرشه:
    کد:
    #ifndef _DELAY_INCLUDED_
    #define _DELAY_INCLUDED_
    //presentation variable
    unsigned long crystal=18432000;  // for other crystal change 18432000
    unsigned long x;
    unsigned long y;
    
    //presentation subs ( we have three sub 1- delay_us 2- delay_ms 3- delay_s
    void delay_us(unsigned long a);
    void delay_ms(unsigned long b);
    void delay_s(unsigned long c);
    // sub delay_us 
    void delay_us(unsigned long a){
    do{
    unsigned long d=0;
    x=crystal/50000000;     //
    for (d=0;d<x;d++);     //start the VALUE off d is 0 ,  increase  d , 
    //if d > x goto next line ,else (d<x) increase d
    y++;   // increase y 
    } while(y<a);  //if y > a goto next line ,else (y<a) goto "do{"
    y=0;
    }
    //in mine program , you write "delay_s(4);" . in this Header "a" is 4 & do-while 
    //loop repeat 4 ---time = (x*5)/ crystal
    // sub delay_ms
    void delay_ms(unsigned long b){
    do{
    unsigned long e=0;
    x=crystal/5000;    
    for (e=0;e<x;e++);
    y++;
    } while(y<b);
    y=0;
    }
    // sub delay_s
    void delay_s(unsigned long c){
    do{
    unsigned long f=0;
    x=crystal/5;
    for (f=0;f<x;f++);
    y++;
    } while(y<c);
    y=0;
    }
    #endif
    ممنون

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    آقا منم با این تاخیر توی آرم حسابی مشکل دارم
    اگه وقت شد یه تابع درست درمون براش مینویسم که جایی هیچ حرفی نداشته باشه

  4. #3

  5. تشکرها از این نوشته :


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

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