اطلاعیه

Collapse
No announcement yet.

کتابخانه ff.h

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

    پاسخ : کتابخانه ff.h

    نوشته اصلی توسط Abbas Sarami
    این را دانلود کن و تست کن
    من امکان تست ندارم فقط compile کردم
    ff10a Codevision.rar - 364 KB

    تست کنید و نتیجه را اعلام کنید

    موفق باشید
    آقای صرامی
    من برنامه شما رو که کامپایل میکنم عالی و بدون مشکل کار میکنه
    بعد میام یه پروژه جدید میسازم با همون AT128
    بعد کل پوشه FF_Files رو هم کپی میکنم توی پوشه پروژم ( دقیقا همون کارایی که شما کردید )
    بعد کل برنامه main.c رو پاک میکنم و برنامه شما رو کپی میکنم توش
    بعد که میزنم کامپایل 3 تا خطا میده
    این پروژه شما میشه یه نگاهی بش بندازید :
    http://eca.ir/sharing/uploads/13970589061.rar

    کد:
    /*****************************************************
    Chip type        : ATmega128
    AVR Core Clock frequency: 11.059200 MHz
    Author : Abbas Sarami
    *****************************************************/
    
    #include <mega128.h>
    #include "FF_Files/diskio.h"
    #include "FF_Files/ff.h"
    #include "FF_Files/integer.h"
    
    
    interrupt [TIM1_COMPA] void timer1_compa_isr(void) //100Hz timer 
    {
      disk_timerproc();  /* Drive timer procedure of low level disk I/O module */
    }
    
    
    
    DWORD get_fattime (void)
    {
    return 0;
    }
    
    FATFS FatFs;
    void main(void)
    {
    BYTE Result;
    
    TCCR1A=0x00;
    TCCR1B=0x05;
    OCR1AH=0x00;
    OCR1AL=0x6C;
    #asm("sei")
    
    
    do{Result = disk_initialize(0);}while(Result!=FR_OK); // init disk (mmc/sd)
    do{Result = f_mount(&FatFs,"",0);}while(Result!=FR_OK); // fat mount
    
     // other code 
    
    while (1)                             
       {
        
       }
    }
    درایور شبکه و nRF24L01
    کاتالوگ محصولات
    کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
    شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
    فروش اسیلوسکوپ GWinstek GOS-630FC

    دیدگاه


      پاسخ : کتابخانه ff.h

      کل مراحل کاری که انجام دادم رو اینجا گذاشتم
      http://eca.ir/sharing/uploads/13970628561.rar
      کاش یه نفر اینطوری از ب بسم الله میگفت چیکار باید کرد تا یه Read یا Write ساده
      والا گیر کردم چند روزه هرچی ور میرم نمیشه
      برنامه آقای صرامی کامپایل میشه ولی من که این کاراو میکنم نمیشه
      آخه چراااااااااااااااااااااا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟ :angry: :angry: :angry:
      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
      شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
      فروش اسیلوسکوپ GWinstek GOS-630FC

      دیدگاه


        پاسخ : کتابخانه ff.h

        آقای بیرامی
        من فایل‎های شما رو نگاه کردم.
        شما باید فایل ff.c رو هم اینکلود بکنین. چون طبق این ارورهایی که گرفتین تعریف f_mount بطور مثال در فایل ff.c اومده.
        و همین طور برای disk_initialize باید فایل mmc_avr.c رو هم باید اینکلود بکنید.
        و اون یکی ارور رو هم به همین ترتیب عمل بکنید.
        تابع disk_timerproc هم در mmc_avr.c تعریف شده. با این دوتاکار فکر میکنم مشکلتون حی میشه.
        موفق باشین.

        دیدگاه


          پاسخ : کتابخانه ff.h

          نوشته اصلی توسط سینا_80
          آقای بیرامی
          من فایل‎های شما رو نگاه کردم.
          شما باید فایل ff.c رو هم اینکلود بکنین. چون طبق این ارورهایی که گرفتین تعریف f_mount بطور مثال در فایل ff.c اومده.
          و همین طور برای disk_initialize باید فایل mmc_avr.c رو هم باید اینکلود بکنید.
          و اون یکی ارور رو هم به همین ترتیب عمل بکنید.
          تابع disk_timerproc هم در mmc_avr.c تعریف شده. با این دوتاکار فکر میکنم مشکلتون حی میشه.
          موفق باشین.
          مرسی مرسی
          ببین اینطوری تغییر دادم :

          /************************************************** ***
          Chip type : ATmega128
          AVR Core Clock frequency: 11.059200 MHz
          Author : Abbas Sarami
          ************************************************** ***/

          #include <mega128.h>
          #include "FF_Files\diskio.h"
          #include "FF_Files\ff.c"
          #include "FF_Files\ff.h"
          #include "FF_Files\mmc_avr.c"
          #include "FF_Files\integer.h"


          interrupt [TIM1_COMPA] void timer1_compa_isr(void) //100Hz timer
          {
          disk_timerproc(); /* Drive timer procedure of low level disk I/O module */
          }



          DWORD get_fattime (void)
          {
          return 0;
          }

          FATFS fs;
          void main(void)
          {
          BYTE Result;

          TCCR1A=0x00;
          TCCR1B=0x05;
          OCR1AH=0x00;
          OCR1AL=0x6C;
          #asm("sei&quot


          do{Result = disk_initialize(0);}while(Result!=FR_OK); // init disk (mmc/sd)
          do{Result = f_mount(&fs,"",0);}while(Result!=FR_OK); // fat mount

          // other code

          while (1)
          {

          }
          }
          وقتی اون 2تا خط قرمزو اضافه کردم به FatFs که اینطوری :

          کد:
          FATFS FatFs;
          تعریف شده بود گیر داد

          بعد آمدم طبق رنگ آبی تغییرش دادم درست شد

          ولی 2 تا سوال :
          1 - ایراد چی بود که برنامه آقای صرامی بدون اینکلود کردن اون فایل ها کار میکرد؟!!!
          2 - چرا این FatFs رو که کردم fs درست شد؟!
          درایور شبکه و nRF24L01
          کاتالوگ محصولات
          کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
          شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
          فروش اسیلوسکوپ GWinstek GOS-630FC

          دیدگاه


            پاسخ : کتابخانه ff.h

            نوشته اصلی توسط بسطام بیرامی

            ولی 2 تا سوال :
            1 - ایراد چی بود که برنامه آقای صارمی بدون اینکلود کردن اون فایل ها کار میکرد؟!!!
            2 - چرا این FatFs رو که کردم fs درست شد؟!
            خوشحالم که مشکلتون حل شد.
            در مورد سوال اول: شاید آقای صارمی در یه قسمتی از برنامه‎شون تابع‎های f_mount ، disk_timerproc و disk_initialize رو تعریف کردن.
            چون در اون ارورهایی که به شما گرفته شده بود بیان شده بود که شما این‎ها رو اعلان کردید ولی هیچ‎کجا تعریف نکرده‎اید.
            در مورد سوال دوم: برای این مورد شما باید هر عبارتی رو که جلوی FatFs مینویسید، دقیقا همون رو در قسمت پارامترهای f_mount قید بکنید.
            ولی در مورد چرایش، چون اطلاعاتم ناقصه، نمیخوام اظهار نظر اشتباهی بکنم تا خدایی ناکرده گمراهتون بکنم.

            دیدگاه


              پاسخ : کتابخانه ff.h

              با سلام
              یه سوالی طی پیغام خصوصی یکی از دوستان مبنی بر ابدیت برنامه های قبلی که از توابع ورژن های پایینتر استفاده شده پرسیده بودن
              برای ابدیت فقط کافیه 6 تا فایل داخل پوشه src رو جایگزین کنید
              یعنی فایل های زیر
              diskio.c
              diskio.h
              ff.c
              ff.h
              ffconf.h
              integer.h
              البته باید فایل ffconf رو دوباره کانفیگ کنید
              معمولا همشون تغییر نمیکنن ولی میتونید با مطالعه فایل 00readme.txt در داخل همین پوشه اخرین تغییرات رو ببینید
              حالا برای استفاده از این توابع نیاز به چنتا تابع دیگه برای ارتباط با دیسک داریم که میتونه هارد یا انواع مموری باشه
              میشه توابع زیر


              disk_status - Get device status
              disk_initialize - Initialize device
              disk_read - Read sector
              disk_write - Write sector
              disk_ioctl - Control device dependent features
              get_fattime - Get current time
              تابع get_fattime و disk_write در صورتی نیاز خواهد بود که FS_READONLY_ صفر باشه یا بخواید بنویسید

              البته اقای چان خودشون زحمت کشیدن و یه چنتا رفرنس خوب در اختیار ما قرار دادن
              ata.c برای ارتباط با هارد دیسک و cdrom با سوکت ATA
              cfc.c برای ارتباط با CompactFlash ها
              cfmm.c برای ارتباط با CompactFlash و MMC به صورت combo و یکجا
              mmc_avr.c برای ارتباط با انواع مموری ها با استفاده از SPI سخت افزاری خود میکرو
              mmc_bb.c برای ارتباط با انواع مموری ها با استفاده از SPI نرم افزاری و هر پینی که خودتون بخواید "سرعت این یکی کمتر از مورد بالاست ولی در برخی موارد کارسازه"

              به همین سادگی :nice:
              تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
              به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

              دیدگاه


                پاسخ : کتابخانه ff.h

                مرسی آقای اسدی
                من برای این که تاپیک آموزشی شما بیش از این شلوغ نشه و این که سطحش پایین نیاد
                ( سوالاتم خیلی ابتدایی تر از آموزش شما در این تاپیک هست )
                و دوستان دیگر که از من جلوتر هستند بتونن سوالاتشونو توی همین تاپیک مطرح کنند
                من تاپیک جدیدی باز کردم که بتونیم بهتر و سریع تر به جواب برسیم
                کتابخانه ff.h در Codevision
                ممنون از همکاری و راهنمایی های ارزشمند شما
                درایور شبکه و nRF24L01
                کاتالوگ محصولات
                کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                فروش اسیلوسکوپ GWinstek GOS-630FC

                دیدگاه


                  پاسخ : کتابخانه ff.h

                  این هم نتایج زحمات آقایان صرامی و اسدی عزیز

                  آموزش راه اندازی Micro SD به زبان C
                  با
                  استفاده از کتابخانه FatFS در CodeVision
                  درایور شبکه و nRF24L01
                  کاتالوگ محصولات
                  کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                  شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                  فروش اسیلوسکوپ GWinstek GOS-630FC

                  دیدگاه


                    پاسخ : کتابخانه ff.h

                    با سلام و تشکر از جناب اسدی

                    من با توجه به توضیحاتی که در صفحات قبل دادید تونستم یک فایل روی microSD ایجاد کنم و داخل اون دیتا بریزم. هدفم ساخت دیتا لاگر هستش و چندتا سوال داشتم خدمتون:

                    1- خب ما یه فایل درست کردیم و اطلاعات رو به صورت سطری در اون ذخیره کردیم مثلا داخل فایل txt به این صورت هست.
                    کد:
                    #1  H:M:S  8.98896  7.36876
                    #2  H:M:S  9.34596  7.343576
                    #3  H:M:S  8.98896  7.334576
                    #4  H:M:S  53.453  7.36
                    حالا دستگاه خاموش میشه و مدتی بعد روشن میشه و ما می خوایم درهمین فایل در ادامه دیتاهای جدید رو وارد کنیم (طول خط ها یکسان نیست)به چه صورت باید این کار رو انجام بدیم؟ دوتا مشکلی که دارم اینه که چه طور انتهای فایل رو تشخیص بدم و چه طور بهش بفهمونم که از فلان خط شروع کن به نوشتن یا خوندن.
                    با ذکر مثال اگر فرصت داشتید توضیح دهید ممنون می شوم.

                    2- آیا پسوند فایل های همیشه باید txt باشد یا هر پسوند دلخواهی خواستیم می توانیم به فایل ها بدهیم؟ درصورت جواب مثبت آیا پسوند میتواند هر طولی داشته باشد یا فقط باید 3 حرف باشد؟

                    دیدگاه


                      پاسخ : کتابخانه ff.h

                      با سلام

                      خیلی راحت آقای چان خودش گفته

                      کد:
                      /* will hold the file information */
                      FIL file;
                      --
                      --
                      --
                      --
                      --
                      res = f_open(&file,path, FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
                      res = f_lseek(&file, file.fsize);

                      دیدگاه


                        پاسخ : کتابخانه ff.h

                        با سلام خدمت استادان گرامی بنده 1 مشکل بزرگ (واسه خودم) دارم

                        بنده روی یک پروژه ای کار میکنم که در این پروژه قراره اطلاعات بصورت اعدادی در یک فایل متنی روی کارت حافظه ذخیره بشه و توسط میکرو هر سری یک کاراکتر(یک عدد یکان یا 2 بایت (عددی)) از کارت حافظه خوانده بشه و با توجه به اون پورت مربوطه که تعریف کردم فعال بشه مشکلم اینه که میخوام هر وقت یه کاراکتر یا 2بایت(اعداد) را خواند محل قرار گیری اون کاراکتر را هم روی یک متغییر EEPROM بنویسم تا دفعه بعد از اونجا شروع به خواندن کنه
                        منتها هر چه گشتم نتونستم در مورد خواندن کاراکتر به کاراکتر و مکان فعلی( مکان نما) فایل بر روی حافظه چیزی پیدا کنم

                        ممنون میشم کسی کمکم کنه
                        خیلی واجبه

                        دیدگاه


                          پاسخ : کتابخانه ff.h

                          http://www.eca.ir/forum2/index.php?topic=59702.msg588366#msg588366
                          در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

                          1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
                          2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
                          3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

                          دیدگاه


                            پاسخ : کتابخانه ff.h

                            با تشکر فراوان از جناب اسدی بابت توضیح کامل ff.h :applause:
                            واقعا عالیه من مو به مو همه رو خوندم و تونستم ازش استفاده کنم :wow:
                            فقط یه مشکلی هست این که من این کتابخونه رو از وب سایت اصلی نگرفتم ff رو آقای بهزاد خزاما به کدویژن تبدیل کردن و توی وب سایتشون گذاشته بودن منم اول از همون جا دانلود کردم و با توضیحات شما راه اندازیش کردم اما الان به یه سری توابع خواص نیاز دارم که حتی با وجود 0 کردن FS_TINY هم توی این کتابخونه تبدیل شده نیستن! (مثل f_tell , f_getlabel یا خیلی توابع دیگه) حالا چرا نمیدونم! ممکنه به خاطر قدیمی بودن ورژنش باشه؟ آخه ایشون ورژن R0.05 رو تبدیل کردن در حالی که الان آخرین ورژن R0.10b هست (که متاسفانه برای بنده قابل استفاده نیست)
                            من الان باید چیکار کنم؟ :cry:
                            چجوری میشه آخرین ورژن رو به codevision تبدیلش کرد
                            به خدا دعاتون میکنم :biggrin:

                            دیدگاه


                              پاسخ : کتابخانه ff.h

                              در ضمن بابت ارسال قبلیم معذرت میخوام :biggrin: من اون موقع اصلا تاپیک رو مطالعه نکرده بودم
                              فراموش کنید :mrgreen:

                              دیدگاه


                                پاسخ : کتابخانه ff.h

                                نوشته اصلی توسط Sina.psh
                                ...
                                من الان باید چیکار کنم؟ :cry:
                                چجوری میشه آخرین ورژن رو به codevision تبدیلش کرد
                                به خدا دعاتون میکنم :biggrin:
                                به این تاپیک مراجعه کنید:
                                http://www.eca.ir/forum2/index.php?topic=92094.0
                                امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                                دیدگاه

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