اطلاعیه

Collapse
No announcement yet.

مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

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

    مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

    من فایل های با پسوند .h رو کپی کردم توی پوشه inc
    بعد فایل ff.c رو open کردم و از منوی فایل گزینه convert to library رو زدم و به اسم ff.lib ذخیره کردم.

    یه برنامه ساده طبق مجله نویز 2 نوشتم
    کد:
    #include <mega32.h>
    #include "ff.h"
    #include <stdio.h>
    
    // Declare your global variables here
    
    void main(void)
    {
    // Declare your local variables here
    FRESULT res;
    FATFS drive;
    
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTA=0x00;
    DDRA=0x00;
    
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x00;
    
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x00;
    DDRD=0x00;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    
    
    
    
    
    if((res=f_mount(0,&drive))==FR_OK)
       PORTD.0=1;
       
    
    
    
    
    while (1)
       {
       // Place your code here
    
       };
    }
    اما وقتی کامپایل می کنم اشکال میگیره:
    function f_mount declared, but never defined

    میشه یکی راهنماییم کنه؟

    در ضمن توی مجله گفته بودین از project=>configure=>c compiler
    تب libraries رو انتخاب کنیم
    واسه من همچین سربرگی نداشت!!!!!!!!!!!!!!!!!!!
    هستم اگر می روم گر نروم نیستم

    #2
    پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

    کسی نیست به من کمک کنه؟
    تو رو خدا کمک کنین.
    خیلی نیاز دارم به کتابخونه mmc
    هستم اگر می روم گر نروم نیستم

    دیدگاه


      #3
      پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

      نوشته اصلی توسط roohipatala
      در ضمن توی مجله گفته بودین از project=>configure=>c compiler
      تب libraries رو انتخاب کنیم
      واسه من همچین سربرگی نداشت!!!!!!!!!!!!!!!!!!!
      چون این ورژنی که دارید استفاده میکنید این قابلیت رو نداره!

      از نسخه های بالاتر مثل 2.05 که در همین سایت برای دانلود قرار داده شده استفاده کنید

      موفق باشید

      دیدگاه


        #4
        پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

        نوشته اصلی توسط حامد مهری
        چون این ورژنی که دارید استفاده میکنید این قابلیت رو نداره!

        از نسخه های بالاتر مثل 2.05 که در همین سایت برای دانلود قرار داده شده استفاده کنید

        موفق باشید
        یعنی مشکل تابع f_mount هم همین ورژنه؟
        هستم اگر می روم گر نروم نیستم

        دیدگاه


          #5
          پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

          اصلا فکر کنم این روژنی که شما استفاده میکنید این کتابخونه رو پشتیبانی نمیکنه ، چه برسه به این که این تابع رو بشناسه :agree:

          ورژنتون رو عوض کنید درست میشه

          دیدگاه


            #6
            پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

            من نسخه جدید کد ویژن رو نصب کردم
            مشکل قبلی حل شد. (با تشکر از اقا حامد به خاطر راهنماییش)

            حالا مشکل جدیدی دارم:
            من برنامه آقا حامد رو نوشتم (البته با کمی دستکاری):
            کد:
            #include <mega32.h>
            #include <ff.h>
            #include <stdio.h>
            #include <delay.h>
            
            
            #define T1_OVF_FREQ 100
            #define T1_PRESC 1024L
            #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
            
            FRESULT res;
            FATFS fat;
            FIL file;
            char path[]="0:/ECA.txt";
            
            interrupt [TIM1_OVF] void timer_comp_isr(void)
            {
            /* re-initialize Timer1 */
            TCNT1H=T1_INIT>>8;
            TCNT1L=T1_INIT&0xFF;
            /* card access low level timing function */
            disk_timerproc();
            }
                      
            void main(void)
            {
            PORTA=0x00;
            DDRA=0xFF;
            PORTB=0x00;
            DDRB=0x00;
            PORTC=0x00;
            DDRC=0xFF;
            PORTD=0x00;
            DDRD=0x00;
            
            
            
            TCCR1A=0x00;
            TCCR1B=(1<<CS12)|(1<<CS10);
            TCNT1H=T1_INIT>>8;
            TCNT1L=T1_INIT&0xFF;
            TIMSK=1<<TOIE1;
            
            
            
            
            if ((res=f_mount(0,&fat))==FR_OK)
              PORTA=0x01;
            
            delay_ms(100);
            PORTA=0x00;
            
            if ((res=f_open(&file,path,FA_CREATE_ALWAYS))==FR_OK)
              PORTA=0x02;
                           
            delay_ms(100);                 
            PORTA=0x00;
            
            
            while(1);
             }


            اینم عس شماتیک من:

            http://santooristan.persiangig.com/پ...?/Untitled.png

            برنامه رو به صورت گام به گام شبیه سازی کردم
            تابع f_mount اجرا میشه و کارش رو درست انجام میده ==> PORTA=0x01;
            میرسه به تابع f_open اما همین که این تابع اجرا میشه برنامه میره توی تابع و دیگه ازش بیرون نمیاد.
            نمیدونم چرا!!!
            رفتم توی سایت کتابخونه ff.h
            دنبال یه مثال واسه f_open گشتم این رو پیدا کردم:
            کد:
            void main (void)
            {
              FATFS fs[2];     /* Work area (file system object) for logical drives */
              FIL fsrc, fdst;   /* file objects */
              BYTE buffer[4096];  /* file copy buffer */
              FRESULT res;     /* FatFs function common result code */
              UINT br, bw;     /* File read/write count */
            
            
              /* Register work area for each volume (Always succeeds regardless of disk status) */
              f_mount(0, &fs[0]);
              f_mount(1, &fs[1]);
            
              /* Open source file on the drive 1 */
              res = f_open(&fsrc, "1:srcfile.dat", FA_OPEN_EXISTING | FA_READ);
              if (res) die(res);
            
              /* Create destination file on the drive 0 */
              res = f_open(&fdst, "0:dstfile.dat", FA_CREATE_ALWAYS | FA_WRITE);
              if (res) die(res);
            
              /* Copy source to destination */
              for (;;) {
                res = f_read(&fsrc, buffer, sizeof(buffer), &br);  /* Read a chunk of src file */
                if (res || br == 0) break; /* error or eof */
                res = f_write(&fdst, buffer, br, &bw);        /* Write it to the dst file */
                if (res || bw < br) break; /* error or disk full */
              }
            
              /* Close open files */
              f_close(&fsrc);
              f_close(&fdst);
            
              /* Unregister work area prior to discard it */
              f_mount(0, NULL);
              f_mount(1, NULL);
            }


            اگه دقت کنین می بیینین که نحوه آدرس دهیش یه کمی فرق داره (/ رو نداره) ==>
            کد:
             " path   ==>    0:dstfile.dat"
            این رو هم امتحان کردم اما بازم جواب نداد
            میشه یکی داهنماییم کنه؟مشکل کار کجا میتونه باشه؟
            هستم اگر می روم گر نروم نیستم

            دیدگاه


              #7
              پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

              کسی نمیدونه مشکل من کجاست؟
              هستم اگر می روم گر نروم نیستم

              دیدگاه


                #8
                پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                هیش کی نیست به من کمک کنه؟
                چرا از توی تابع f)open خاج نمیشه؟
                هستم اگر می روم گر نروم نیستم

                دیدگاه


                  #9
                  مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق

                  من برنامه رو توی AVR Studio شبیه سازی کردم
                  وقتی به دستور f_open میرسم میکرو هنگ میکنه (یعنی میفته توی یه حلقه بینهایت)
                  با AVR Stuodio disassembler کار کردم و دقیقا فهمیدم توی کدوم دستورها گیر می کنه
                  اما نمیدونم باید چیکار کنم؟ (اسمبلیه!!)
                  این دستوریه که گیر میکنه:

                  http://santooristan.persiangig.com/پروژه کارشناسی/f_open.gif

                  کسی میدونه چطور میتونم بفهمم این 3 دستور مربوط به کدوم دستور از برنامه اصلی (زبان C )هست؟
                  هستم اگر می روم گر نروم نیستم

                  دیدگاه


                    #10
                    پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                    من وقتی کتابخونه FATfs module رو دانلود کردم یه فایل header توش بود به اسم diskio.h
                    به نظر شما مشکل من میتونه از این باشه که من اصلا با این هدر فایل کار نکردم و هیچ تابعی از اون فراخوانی نکردم ؟
                    آخه توی help کدویژن قسمت FAT چیزی درباره استفاده از diskio.h ننوشته!!!!!!!!!!
                    هستم اگر می روم گر نروم نیستم

                    دیدگاه


                      #11
                      پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                      کسی نیست یه راهنمایی بکنه ما رو؟
                      میشه یه نفر یه برنامه بنویسه که یه فایل روی mmc ایجاد کنه و یه متنی توش بنویسه بعد اون متن رو بخونه؟
                      (به صورت سکتوری نمیخوام)
                      خیلی لازم دارم
                      هستم اگر می روم گر نروم نیستم

                      دیدگاه


                        #12
                        پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

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

                        من از Filesystem کد ویژن استفاده نکردم و به جای آن از Filesystemی که از سایت زیر آدرس آن را آورده ام استفاده کرده ام و خوشبختانه بدون هیچ مشکلی کار کرد و بنده چندین پروژه را نیز با آن به انجام رساندم.

                        http://www.roland-riegel.de/sd-reader/index.html

                        موفق باشید
                        http://www.eDev.ir

                        دیدگاه


                          #13
                          پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                          نوشته اصلی توسط hadirobati
                          سلام دوست عزیز

                          من از Filesystem کد ویژن استفاده نکردم و به جای آن از Filesystemی که از سایت زیر آدرس آن را آورده ام استفاده کرده ام و خوشبختانه بدون هیچ مشکلی کار کرد و بنده چندین پروژه را نیز با آن به انجام رساندم.

                          http://www.roland-riegel.de/sd-reader/index.html

                          موفق باشید
                          http://www.eDev.ir
                          ممنون
                          بالاخره یکی جواب ما رو داد!!!!!!!!!!!!!!!
                          داداش من دانلود کردمش الان برم ببینم میتونم کاری کنم یا نه
                          بازم ممنون
                          هستم اگر می روم گر نروم نیستم

                          دیدگاه


                            #14
                            پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                            نوشته اصلی توسط hadirobati


                            من از Filesystem کد ویژن استفاده نکردم و به جای آن از Filesystemی که از سایت زیر آدرس آن را آورده ام استفاده کرده ام
                            میشه بیشتر توضیخ بدید؟
                            ممنون
                            Don't hesitate to ask any question ..

                            دیدگاه


                              #15
                              پاسخ : مشکل در اضافه کردن کتابخانه ff.h به کدویژن(FAT){طبق مجله نویز 2}

                              نوشته اصلی توسط syavash_kasraeee
                              میشه بیشتر توضیخ بدید؟
                              ممنون
                              سلام
                              من هم ممنون میشم اگه داداش هادی توضیح بیشتری بده
                              هادی جان میشه یه کم از وقتت رو واسه ما صرف کنی؟
                              هستم اگر می روم گر نروم نیستم

                              دیدگاه

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