اطلاعیه

Collapse
No announcement yet.

نتیجه متفاوت با دو کامپایلر MPLAB X و MikroC ____ لطفاً راهنمایی کنید

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

    نتیجه متفاوت با دو کامپایلر MPLAB X و MikroC ____ لطفاً راهنمایی کنید

    سلام دوستان
    برای انجام اولین پروژهآ‌ PIC ، میکروی 18F452 رو انتخاب کردم (البته قبلاً کمی AVR کار کردم). برای تست میکرو یه برنامه ساده blink رو در دو نرمآ‌افزار MPLAB X IDE با کامپایلر xc8 و MikroC for PIC v5.01 نوشتم. با وجود اینکه برنامه هردو کاملاً مشابه هستند و فیوزبیتآ‌ها هم مشابه مقداردهی شدن، برنامهآ‌ای که در MikroC نوشته شده جواب نمیده. در واقع با برنامه کامپایل شده در MikroC میکرو واکنش خاصی نشون نمیده :angry:. لطفاً راهنمایی کنید.

    در MikroC فیوزبیتها رو به صورت زیر مقداردهی کردم:
    کد:
    Oscillator selection: HS
    Oscillator System clock switch: Disabled
    Powerup timer: Enabled
    Brown out reset: Disabled
    Watchdog timer: Disabled
    و غیره

    برنامهآ‌های نوشته شده به صورت زیر هستند:

    کد:
    /* MPLAB X IDE v1.60 */
    #include <p18f452.h>
    #include <delays.h>
    #include <xc.h>
    
    #pragma config OSC=HS
    #pragma config PWRT=ON
    #pragma config BOR=OFF
    #pragma config WDT=OFF
    
    void main(void)
    {
    TRISDbits.RD2=0;
    while(1)
      {
      PORTDbits.RD2=0;
      _delay(100000);
      PORTDbits.RD2=1;
      _delay(100000);
      }
    }
    کد:
    /* MikroC for PIC v5.01 */
    
    void main(void)
    {
      TRISD.B2 = 0;
      while (1)
      {
      PORTD.B2=0;
      delay_ms(500);
      PORTD.B2=1;
      delay_ms(500);
      }
    }

    #2
    پاسخ : نتیجه متفاوت با دو کامپایلر MPLAB X و MikroC ____ لطفاً راهنمایی کنید

    سلام دوست عزیز.

    تو سورس نوشته شده موردی دیده نمیشه.شاید تنظیمات کریستال توی قسمت تنظیمات پروژه میکروسی اشکال داشته باشه.یا شاید هم کامپایلر درست کرک نشده باشه(که احتمالش کمه،چون حتی بدون کرک هم تا حجم مشخصی رو میشه کامپایل کرد)

    برنامه ای که با MPLABX نوشتین کامل کار میکنه؟

    دیدگاه


      #3
      پاسخ : نتیجه متفاوت با دو کامپایلر MPLAB X و MikroC ____ لطفاً راهنمایی کنید

      نوشته اصلی توسط a_meteoric
      کد:
      Oscillator selection: HS
      Oscillator System clock switch: Disabled
      Powerup timer: Enabled
      Brown out reset: Disabled
      Watchdog timer: Disabled
      و غیره

      برنامهآ‌های نوشته شده به صورت زیر هستند:

      کد:
      /* MPLAB X IDE v1.60 */
      #include <p18f452.h>
      #include <delays.h>
      #include <xc.h>
      
      #pragma config OSC=HS
      #pragma config PWRT=ON
      #pragma config BOR=OFF
      #pragma config WDT=OFF
      
      void main(void)
      {
      TRISDbits.RD2=0;
      while(1)
        {
        PORTDbits.RD2=0;
        _delay(100000);
        PORTDbits.RD2=1;
        _delay(100000);
        }
      }
      کد:
      /* MikroC for PIC v5.01 */
      
      void main(void)
      {
        TRISD.B2 = 0;
        while (1)
        {
        PORTD.B2=0;
        delay_ms(500);
        PORTD.B2=1;
        delay_ms(500);
        }
      }
      سلام. شاید دستورات بیتی تغییر در PORT درست نیستند. به جای استفاده از PORTD.B2=0 از
      PORTD &= ~(1<<2)
      و به جای PORTD.B2=1 از
      PORTD |= (1<<2)
      استفاده کنید ممکنه مشکلتون حل بشه.

      دیدگاه


        #4
        پاسخ : نتیجه متفاوت با دو کامپایلر MPLAB X و MikroC ____ لطفاً راهنمایی کنید

        ممنون از توجهآ‌تون :smile:
        با نصب دوباره کامپایلر مشکل حل شد!

        دیدگاه

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