ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2008/10/29
    2,098
    219

    تاخیر یک ثانیه توسط میکرو و 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. #2
    2009/02/18
    تهران
    270
    1

    پاسخ : تاخیر یک ثانیه توسط میکرو و 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


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

موضوعات مشابه

  1. پاسخ: 48
    آخرين نوشته: 2017/05/26, 16:37
  2. ایجاد تاخیر 1 نانو ثانیه با گیتهای داخل fpga
    توسط mahdi421 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 7
    آخرين نوشته: 2015/04/16, 17:56
  3. تاخیر میکروثانیه به جای میلی ثانیه
    توسط nex2004 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2010/12/02, 09:23
  4. timer0 میکرو AVR و ثانیه شمار ساده با کریستال داخلی میکرو
    توسط hamid_P200 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2010/06/22, 08:33
  5. پاسخ: 17
    آخرين نوشته: 2007/08/26, 14:35

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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