اطلاعیه

Collapse
No announcement yet.

مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

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

    مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

    با سلام و خسته نباشید به همه ی دوستان

    یه حدود چند روزی میشه که دارم روی کتابخونه ی MDDFS میکروچیپ کارمیکنم. یه برنامه ی ساده نوشتم ولی متصفانه کامپایل نمیشه و ارور میده.
    اگه برنامه ی میکروچیپ لایبراری رو نصب کرده باشید توی مسیر MICROCHIP LIB->MDDFS->DACUMENT یه PDF راهنما وجود داره که یه توضیحاتی
    در مورد نحوه ی کار با این لایبراری داده وگفته که برای استفاده از MMC باید هدر های زیر رو به پروژه اضافه کنید:
    COMPILER.h-fsconfig.h-fsdef.h-fsio.h-generictypdef.h-hardware profile.h-salloc.h-sd-spi.h

    من تمام این مراحل رو پیش رفتم ویه پروژه با میکروی pic18f4550 وکامپایلر xc8 نوشتم ولی زمانی که مثلا دستور fsinit از کتابخونه ی FSio رو
    فرا خانی میکنم یه ارور بهم میده :undefine symbol "fsinit"
    از اساتید خواهش میکنم اگه با این کتابخونه کار کردن اشکال کارو بگند یا توی همین تاپیک یه آموزش از این لایبراری بزارند تا همه استفاده کنند. باز هم
    از همگی متشکرم. :biggrin:

    کد:
    /* 
     * File:  PIC_MMC.c
     * Author: EHSAN RAZAZZADEH
     *
     * Created on July 19, 2013, 7:02 PM
     */
    
    #define XTAL_FREQ 8000000
    //*********************************************
    #include <xc.h>
    #include "Compiler.h"
    #include "FSconfig.h"
    #include "FSDefs.h"
    #include "FSIO.h"
    #include "GenericTypeDefs.h"
    #include "HardwareProfile.h"
    #include "salloc.h"
    #include "SD-SPI.h"
    //*********************************************
    // CONFIG1L
    #pragma config PLLDIV = 1    // PLL Prescaler Selection bits (No prescale (4 MHz oscillator input drives PLL directly))
    #pragma config CPUDIV = OSC1_PLL2// System Clock Postscaler Selection bits ([Primary Oscillator Src: /1][96 MHz PLL Src: /2])
    #pragma config USBDIV = 1    // USB Clock Selection bit (used in Full-Speed USB mode only; UCFG:FSEN = 1) (USB clock source comes directly from the primary oscillator block with no postscale)
    // CONFIG1H
    #pragma config FOSC = HS    // Oscillator Selection bits (HS oscillator (HS))
    #pragma config FCMEN = OFF   // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)
    #pragma config IESO = OFF    // Internal/External Oscillator Switchover bit (Oscillator Switchover mode disabled)
    // CONFIG2L
    #pragma config PWRT = OFF    // Power-up Timer Enable bit (PWRT disabled)
    #pragma config BOR = ON     // Brown-out Reset Enable bits (Brown-out Reset enabled in hardware only (SBOREN is disabled))
    #pragma config BORV = 3     // Brown-out Reset Voltage bits (Minimum setting)
    #pragma config VREGEN = OFF   // USB Voltage Regulator Enable bit (USB voltage regulator disabled)
    // CONFIG2H
    #pragma config WDT = OFF    // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
    #pragma config WDTPS = 32768  // Watchdog Timer Postscale Select bits (1:32768)
    // CONFIG3H
    #pragma config CCP2MX = ON   // CCP2 MUX bit (CCP2 input/output is multiplexed with RC1)
    #pragma config PBADEN = ON   // PORTB A/D Enable bit (PORTB<4:0> pins are configured as analog input channels on Reset)
    #pragma config LPT1OSC = OFF  // Low-Power Timer 1 Oscillator Enable bit (Timer1 configured for higher power operation)
    #pragma config MCLRE = ON    // MCLR Pin Enable bit (MCLR pin enabled; RE3 input pin disabled)
    // CONFIG4L
    #pragma config STVREN = ON   // Stack Full/Underflow Reset Enable bit (Stack full/underflow will cause Reset)
    #pragma config LVP = OFF    // Single-Supply ICSP Enable bit (Single-Supply ICSP disabled)
    #pragma config ICPRT = OFF   // Dedicated In-Circuit Debug/Programming Port (ICPORT) Enable bit (ICPORT disabled)
    #pragma config XINST = OFF   // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode disabled (Legacy mode))
    // CONFIG5L
    #pragma config CP0 = OFF    // Code Protection bit (Block 0 (000800-001FFFh) is not code-protected)
    #pragma config CP1 = OFF    // Code Protection bit (Block 1 (002000-003FFFh) is not code-protected)
    #pragma config CP2 = OFF    // Code Protection bit (Block 2 (004000-005FFFh) is not code-protected)
    #pragma config CP3 = OFF    // Code Protection bit (Block 3 (006000-007FFFh) is not code-protected)
    // CONFIG5H
    #pragma config CPB = OFF    // Boot Block Code Protection bit (Boot block (000000-0007FFh) is not code-protected)
    #pragma config CPD = OFF    // Data EEPROM Code Protection bit (Data EEPROM is not code-protected)
    // CONFIG6L
    #pragma config WRT0 = OFF    // Write Protection bit (Block 0 (000800-001FFFh) is not write-protected)
    #pragma config WRT1 = OFF    // Write Protection bit (Block 1 (002000-003FFFh) is not write-protected)
    #pragma config WRT2 = OFF    // Write Protection bit (Block 2 (004000-005FFFh) is not write-protected)
    #pragma config WRT3 = OFF    // Write Protection bit (Block 3 (006000-007FFFh) is not write-protected)
    // CONFIG6H
    #pragma config WRTC = OFF    // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) are not write-protected)
    #pragma config WRTB = OFF    // Boot Block Write Protection bit (Boot block (000000-0007FFh) is not write-protected)
    #pragma config WRTD = OFF    // Data EEPROM Write Protection bit (Data EEPROM is not write-protected)
    // CONFIG7L
    #pragma config EBTR0 = OFF   // Table Read Protection bit (Block 0 (000800-001FFFh) is not protected from table reads executed in other blocks)
    #pragma config EBTR1 = OFF   // Table Read Protection bit (Block 1 (002000-003FFFh) is not protected from table reads executed in other blocks)
    #pragma config EBTR2 = OFF   // Table Read Protection bit (Block 2 (004000-005FFFh) is not protected from table reads executed in other blocks)
    #pragma config EBTR3 = OFF   // Table Read Protection bit (Block 3 (006000-007FFFh) is not protected from table reads executed in other blocks)
    // CONFIG7H
    #pragma config EBTRB = OFF
    //*********************************************
    void main(void) {
    
    
     while (!FSInit());
    }
    در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

    چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!

    #2
    پاسخ : مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

    سلام به همه دوستان.

    دوستان ما منتظر جوابتون هستیما.
    یعنی کسی تا حالا با این کتابخونه کار نکرده .من میخوام mmc رو با میکروی pic18f4550 راه اندازی کنم ولی نمیدونم توی اون هدر هایی که قبلا
    نام بردم باید چه تغییراتی رو بدم کامپایلری که استفاده میکنم xc8 هست آیا تفاوتی با c18 تو راه انداختن این لایبراری داره یا نه چون من توی هر
    هدری که از این لایبراری رفتم نوع کامپایلر رو c18-c30-c32 زده بود.

    دوستان لطفا کمک کنید کارم گیر کرده.
    در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

    چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!

    دیدگاه


      #3
      پاسخ : مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

      سلام

      ببخشید من واقعا وقت ندارم زیاد توضیح بدم :redface: اما یه سرنخ بهتون میدم

      کتاب خانه های میکرو چیپ پیچیدگی خیلی زیادی دارن اما این شرکت راه کاری برای حل این مشکل قرار داده که کار رو با این کتاب خانه ها خیلی ساده میکنه

      تمامی کتاب خانه ها شامل یک یا چند پروژه آماده هستن و شما فقط باید اونا رو در ادیتورتون ایمپورت کنید , بعد میتونید با سرو کله زدن با این پروژه و تغییر اون , روی این کتاب خانه مسلط شید , البته من فقط با C18 کار کردم اما اگر شما با این کامپایلر mmc رو راه بندازید با یکم تحقیق میتونید با XC8 هم این کار رو انجام بدین

      وقتی کتاب خانه رو نصب کنید با یکم گشتن توی فایل ها , میتونید این پروژه های آماده رو که کم هم نیستن پیدا کنید .
      نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
      تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

      دیدگاه


        #4
        پاسخ : مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

        دوست عزیز از اینکه پاسخ دادین ممنون.
        ولی همون طور که خودتون گفتید اولین باری که لایبراری میکرو چیپ رو نصب کردم فقط دو روز داشتم توی پوشه هاش خوب میگشتم تا همه چیزش دستم بیاد oo:
        توی قسمت MDDFS من فقط یه پروژه برای pic24 پیدا کردم و به فرم کامپایلر xc16 هم تبدیل شده بود ولی راستش چیزی ازش نفهمیدم چون انگار خیی پیچیده نوشته
        شده بود و اینکه نمیدونم چرا اینقدر هجم پروژه هم موقع ی کامپایل زیاد میشد (حدود 60% از رم وفلش رو میگیره)

        ممنون میشم اگه یه توضیحی در مورد پیکر بندی این لایبراری (mddfs) ونحوه ی استفاده از اون برای میکرو های مختلف (18f) بدید یعنی اینکه چه تغییراتی توی فایل های
        هدر باید داد تا ارور نگیره. :read:

        باز هم ازتون ممنونم آقای رمضانی. :smile:
        در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

        چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!

        دیدگاه


          #5
          پاسخ : مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

          سلام

          من کتاب خانه Microchip Solutions v2012-04-03 رو دارم که در فلدر :

          C:\Microchip Solutions v2012-04-03\MDD File System-SD Card

          دو پروژه آماده برای راه اندازی SD با سری 18F هست , MDDFS-SD-PIC18 Explorer Board-PIC18F87J50 PIM و MDDFS-SD-PIC18 Explorer Board-PIC18F8722

          فقط کافی یکی از این پروژه ها رو در ادیتور import کنید . مراحل این کار رو طی کنید , برنامه بدون هیچ مشکلی کامپایل میشه که بعد از پیاده کردن روی سخت افزار , میکرو روی SD چند فلدر تو در تو ایجاد کرده و داخل آنها چند فایل txt ایجاد می کند و عبارت هایی داخل اونا مینویسه

          فایل C اصلی که main در اون هست Demonstration نام داره
          پس از کامپایل در حالت رایکان در C18 در یک میکرو 128 کیلوبایتی 54% فضا اشغال میشه
          با حذف امکاناتی مثل , سرچ کردن میشه این کتاب خانه رو بهینه تر کرد

          دقت کنید هنگام import کردن یک پروژه به داخل ادیتور , تنظیمات Project Properties هم اعمال میشن , به این تنظیمات دقت کنید .

          همچنین به فایل هایی که در پنجره پروژه به پروژه اضافه شدن دقت کنید

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

          دیدگاه


            #6
            پاسخ : مشکل اساسی با کتابخانه ی MDDFS میکروچیپ

            سلام آقای رمضانی
            از توجه و پاسختون ممنونم با اینکه ابهامات زیادی توش دارم ولی روش بیشتر کار میکنم ببینم میتونم کاریش بکنم یا نه. :read:

            متشکرم.
            در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

            چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!

            دیدگاه

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