اطلاعیه

Collapse
No announcement yet.

تاخیر یک ثانیه توسط میکرو و MPLAB

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تاخیر یک ثانیه توسط میکرو و MPLAB

    سلام
    داخل AVR و زبان bascom با هر فرکانسی که دستور waitms رو وارد می کردیم معادل x میلی ثانیه تاخیر ایجاد می کرد یعنی مثلا اگر نوشته باشم
    waitms 1000
    تقریبا یک ثانیه رو ایجاد می کرد البته این تابع کاری به تایمر نداشت و با قرار دادن میکرو در حلقه این مدت زمان رو تشکیل می داد

    حالا فبها از اینها من می خوام دستوری با حلقه درست کنم که تاخیری با کریستال خارجی 4 مگاهرتز ایجاد کنه.
    پس فرکانس کاری میکرو یک مگاهرتز هست اما متاسفانه با این دستور اصلا جواب نگرفتم

    کد:
    #include <p18f452.h>
    
    #pragma config OSC   = HS
    #pragma config PWRT  = ON
    #pragma config BOR   = OFF
    #pragma config WDT   = OFF
    #pragma config LVP   = OFF
    
    
    long i;
    
    void main()
    {
    
     TRISD = 0b00000000 ;
    
     //ADCON0bits.ADON = 0 ;
     //ADCON1 = 0b00000110 ;
    PORTD=0;
     while(1)
     {
    for(i=0;i<=1000000;i++);
    PORTDbits.RD2=1;
    for(i=0;i<=1000000;i++);
    PORTDbits.RD2=0;
    
    
     }
    }
    تاخیرش خیلی زیاد هست عدد هم به 100000 تغییر می دم هر 3 ثانیه یه بار خروجی خاموش و روشن می شه حالا چی جوری می تونم یک ثانیه (هر چند نادقیق) با حلقه بسازم؟
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    #2
    پاسخ : تاخیر یک ثانیه توسط میکرو و MPLAB

    سلام

    ابتدا هدر delays.h را به پروژه اضافه کنی

    #include <delays.h>

    بعد میتوانید در قالب دستورات زیر تاخیر ایجاد کنید


    /* PIC18 cycle-count delay routines.
    *
    * Functions:
    * Delay1TCY()
    * Delay10TCY() // 17Cxx only
    * Delay10TCYx()
    * Delay100TCYx()
    * Delay1KTCYx()
    * Delay10KTCYx()
    */
    برای مثال Delay10KTCYx(1) تعداد 1 ضرب در 10000 سیکل تاخیر ایجاد میکند

    حالا این دستورات را داخل حلقه قرار دهید با توجه به اینکه عددی که به این توابع ارسال میکنید فقط یک بایت است ( char )
    برای اطلاعات بیشتر به پی دی اف MPLAB_C18_Libraries_51297f.pdf مراجعه کنید :read:

    http://fadak-srt.persiangig.com/other/mplab-d/MPLAB_C18_Libraries_51297f.pdf


    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

    دیدگاه

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