اطلاعیه

Collapse
No announcement yet.

کتابخانه ff.h

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

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

    سلام آقای اسدی
    تابع بعدی را شروع نمی کنید؟
    منتظریم ها!
    مولای من
    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

    دیدگاه


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

      سلام به آقای اسدی و همه عزیزانی که از اونچه بلدند به دیگران هم یاد میدن :job:
      میخواستم بدونم چجوری میشه تابع pff.h رو تو کد ویژن استفاده کرد و تابع ff.h حد اکثر با حافظه های چند گیگ کار میکنن؟
      http://qsmile.com/qsimages/124.gif

      دیدگاه


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

        نوشته اصلی توسط hesam1
        سلام به آقای اسدی و همه عزیزانی که از اونچه بلدند به دیگران هم یاد میدن :job:
        میخواستم بدونم چجوری میشه تابع pff.h رو تو کد ویژن استفاده کرد و تابع ff.h حد اکثر با حافظه های چند گیگ کار میکنن؟
        برای این توابع ما دوتا محدودیت داریم اولی محدودیت خود فت هست که 12 یا 16 یا 32 باشه که این مورد برمیگرده به ساختار فت و دومی هم از محدودیت میکرو و مقدار رمش هست اولی رو که نمیشه تغییر داد ولی در مورد دومی اگر میکروی شما رم بالای داشته باشه میتونید مشخصات حجم یه کامپیوتر معمولی رو داشته باشید
        در مورد Petit FatFs Module هم باید بگم فرق چندانی با FatFs Module نداره فقط ساده شده این توابع هست و توابع کمتر و بهینه تر شده و برای استفاده در میکروهای با رم پایین و یا تاینی بهینه شده است
        تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
        به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

        دیدگاه


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

          سلام
          من باز هم متوجه نشدم آیا برای استفاده از تابع pff.h در کدویژن که برای winavr نوشته شده باید تغییری در اون ایجاد کرد یا نه؟
          آقای اسدی ما همچنان امیدوارانه به این تاپیک سر میزنیم تا ادامه بحثو پیگیری کنیم لطفا ادامه بدید!!! :cry2:
          http://qsmile.com/qsimages/124.gif

          دیدگاه


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

            نوشته اصلی توسط hesam1
            سلام
            من باز هم متوجه نشدم آیا برای استفاده از تابع pff.h در کدویژن که برای winavr نوشته شده باید تغییری در اون ایجاد کرد یا نه؟
            آقای اسدی ما همچنان امیدوارانه به این تاپیک سر میزنیم تا ادامه بحثو پیگیری کنیم لطفا ادامه بدید!!! :cry2:
            این هم توابع pff برای کدویژن البته با توابع SD یا MMC
            روش استفاده
            توی برنامتون قبلش اینهارو دیفاین کنید

            کد:
            #define set(port,pin)     port |= (1<<pin)
            #define reset(port,pin)    port &= ~(1<<pin)
            #define _BV(bit)        (1 << (bit))


            بعد به ترتیب فایل های mmc.c و بعد pff.c رو انکلود کنید
            در این توابع بنده از میکروی mega16 استفاده کردم ولی در صورت نیاز به میکروهای دیگه میتونید دیفاین پینهای مموری رو توی فایل mmc.h تغییر بدید


            http://s2.picofile.com/file/7162094515/pff.rar.html

            اگه بدردتون خورد منو هم دعا کنید لطفا

            سلام آقای اسدی
            تابع بعدی را شروع نمی کنید؟
            منتظریم ها!
            در ضمن اگه یه نگاهی به ساعت ویرایش یا نوشتن این پست بندازید عمق فاجعه رو درک میکنید
            باور بفرمایید نا امید یا دلسر نشدم فقط سرم بد جور شلوغه و وقت کافی ندارم به هر حال شرمنده همتون هستم حتما ادامه خواهم داد
            تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
            به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

            دیدگاه


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

              تابع هفتم f_truncate

              کد:
              FRESULT f_truncate (
               FIL* FileObject   /* Pointer to the file object */
              );


              (اشاره گر فایل)f_truncate
              هست
              حالا این تابع چیه و به چه درد میخوره؟
              فقط برای باز گرداندن حجم فایل به کار میره

              کجا باید ازش استفاده کرد؟
              اگر بخوایم حجم فایل رو بفهمیم از تابع استفاده میشه

              ورودی و خروجی هاش؟
              یک ورودی داره
              1 : اشاره گر فایل FileObject یه اشاره گر به متغیری که باید قبل از این تابع از نوع استراکچر FIL تعریف شده باشه

              و یک خروجی خطا داره که 6 حالت داره
              FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_INVALID_OBJECT, FR_TIMEOUT
              توضیح خطا ها هم مثل توابع قبلی هست

              برای استفاده از این تابع FS_READONLY_ و FS_MINIMIZE_ باید صفر باشد

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

              دیدگاه


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

                چون تابع قبل ساده بود من تابع بعدی رو هم توضیح میدم

                تابع هشتم f_sync

                کد:
                FRESULT f_sync (
                 FIL* FileObject   // Pointer to the file object 
                );


                (اشاره گر فایل)f_sync
                هست
                حالا این تابع چیه و به چه درد میخوره؟
                دقیقا مشابه تابع f_close هست با این تفاوت که فایل رو نمیبنده و فقط اخرین تغییرات رو اعمال میکنه

                کجا باید ازش استفاده کرد؟
                این تابع برای برنامه های کاربردی که فایل های باز برای مدت طولانی در حالت نوشتن خواهد بود مانند انواع لاگر داده مناسب است بعد از هر بار نوشتن دیتا از این دستور استفاده میکنیم تا تغییرات به فایل اعمال بشه ولی فایل بسته نخواهد شد در واقع با این تابع خطر از دست رفتن اطلاعات به علت خاموشی ناگهانی و یا حذف دیسک ناخواسته را به حداقل میرسانید

                ورودی و خروجی هاش؟
                یک ورودی داره
                1 : اشاره گر فایل FileObject یه اشاره گر به متغیری که باید قبل از این تابع از نوع استراکچر FIL تعریف شده باشه

                و یک خروجی خطا داره که 6 حالت داره
                FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_INVALID_OBJECT, FR_TIMEOUT
                توضیح خطا ها هم مثل توابع قبلی هست

                برای استفاده از این تابع FS_READONLY_ باید صفر باشد

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

                دیدگاه


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

                  جسارتا!
                  من چند وقتی هست که روی این پروژه روی ARM دارم کار میکنم اما ذکر یک نکته:
                  f_truncate فقط برای باز گرداندن حجم فایل به کار میره
                  یا اسم این تابع غلط انتخاب شده یا بیشتر بنظر میرسه که این تابع فایل رو از محل فعلی قیچی میکنه. اصلا معنی truncate همین هست. ضمنا در توضیح این تابع آورده شده:
                  Truncate file

                  ضمنا یک مورد دیگه؛
                  در نسخه ای که من استفاده میکنم؛ تابع f_lseek فقط بصورت مطلق برای عملیات دسترسی به یک نقطه مشخص در فایل نوشته شده ولی در توابع استانداردی مثل lseek پارامتر سومی هم هست که مبنای محاسبه آدرس رو مشخص میکنه. که میتونه از ابتدای فایل؛ محل جاری و یا انتهای قایل باشه.

                  ضمنا این وسط جای دو تا تابع خیلی خالیه. یکی چیزی مثل f_tell و یکی f_getlength. که البته دو تاش رو میشه با دو تا ماکرو یا تابع نوشت:

                  FRESULT f_tell(FIL *fp, unsigned long *loc)
                  {
                  if( fp )
                  {
                  if(loc)
                  *loc = fp->fptr;
                  return FR_OK;
                  }
                  return FR_INVALID_OBJECT;
                  }


                  FRESULT f_getlength(FIL *fp, unsigned long *loc)
                  {
                  if( fp )
                  {
                  if( loc )
                  *loc = fp->fsize;
                  return FR_OK;
                  }
                  return FR_INVALID_OBJECT;
                  }


                  یکی برای گرفتن طول فعلی فایل و یکی برای گرفتن محل فعلی در فایل.
                  ضمنا یک مورد مهمتر که البته در سیستمهایی با رم بالا بیشتر بدرد میخوره و اونهم استفاده از file handle بجای اشاره گری به FIL هست. این مورد رو میشه براحتی توسعه داد تا بشه برای کار روی پورت سریال یا هر تجهیز دیگه ای از این سرویس ها استفاده کرد. من یک نمونه از این کد رو دارم آماده میکنم که به عنوان نمونه شامل توابعی مثل این هست:


                  HFILE FileOpen(PCSTR pszPath, uint16_t mode);
                  void FileClose(HFILE fd);
                  int FileRead(HFILE fd, PVOID buf, size_t size);
                  int FileWrite(HFILE fd, PCVOID buf, size_t size);
                  bool FileSetPosition(HFILE fd, long offset, uint8_t origin);
                  long FileGetLength(HFILE fd);
                  long FileGetPosition(HFILE fd);
                  bool FileFlushBuffers(HFILE fd);
                  bool FileDelete(PCSTR filename);
                  bool FileRename(PCSTR new_name, PCSTR old_name);
                  bool FileFindInit(FILE_FIND_INFO *pInfo, const char *path);
                  bool FileFindNext(FILE_FIND_INFO *pInfo);
                  void FileFindEnd(FILE_FIND_INFO *pInfo);
                  bool FileExist(PCSTR filename);
                  HFILE CreateTempFile(bool removeOnClose);
                  void ClearTempFolder(void);
                  int FilePutString(HFILE fd, const char *str);
                  int FilePutChar(HFILE fd, char c);
                  int FilePrint(HFILE fd, const char *fmt, ...);
                  int FileVPrint(HFILE fd, const char *fmt, va_list args);
                  bool FileGetPath(HFILE fd, TPath path);
                  void FileSetTag(HFILE fd, int tag);
                  int FileGetTag(HFILE fd);
                  int DeviceIoCtrl(HFILE fd, int cmd,
                  void *writeBuf, int writeSize, void *readBuf, int readSize);


                  این اسامی خیلی خوانا تر هستن و خیلی ضعف های این پکیج رو پوشش میدن.
                  یک حسن اساسی این روش هم (که فعلا دارم روش کار میکنم) اینه که کل برنامه رو تحت ویندوز کامپایل و اجرا میکنم تا زمان توسعه نرم افزار و نگهداری اون رو بشدت کم کنم. اینجوری بعد از نوشتن کد اجرایی و نهایی کردنش اون روی میکرو کنترلر میفرستم. فقط روالهای ارتباط با سخت افزار عوض میشه. که این هم نسبت به کل کار از 1 درصد هم کمتر هست.

                  دیدگاه


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

                    نوشته اصلی توسط رضا آقازاده
                    یا اسم این تابع غلط انتخاب شده یا بیشتر بنظر میرسه که این تابع فایل رو از محل فعلی قیچی میکنه. اصلا معنی truncate همین هست. ضمنا در توضیح این تابع آورده شده:
                    Truncate file
                    اینکه فرمودید درسته ولی با توجه به این نکته که برای به قول شما قیچی کردن سایز فایل نه خودش
                    این توضیح مستقیم خود برنامه نویس تابع
                    "The f_truncate function truncates the file size"
                    The f_truncate function truncates the file size to the current file read/write point. This function has no effect if the file read/write pointer is already pointing end of the file.

                    باز هم از توجه شما بینهایت سپاسگذارم

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

                    دیدگاه


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

                      قیچی کردن سایز فایل نه خودش
                      ببینم مگه "قیچی کردن" یک فایل جز روی سایزش جای دیگه ای هم تاثیر میذاره؟؟
                      و مسلما "قیچی کردن" جایی جواب میده که نرسیده به انتهای فایل باشه وگرنه قیچی اصلا معنی نمیده.

                      دیدگاه


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

                        سلام آقای اسدی
                        من دقیقا متوجه نشدم از به روز رسانی یک فایل یعنی چه؟ وقتی ما داریم روش چیزی مینویسیم خودش داره پدیت میشه . مگه چیز دیگه ای هم یک فایل داره که باید به روز بشه؟
                        آنکس که بداند و بداند که بداند /، اسب شرف از گنبد گردون بجهاند
                        آنکس که بداند و نداند که بداند / ، بیدارش نمایید که بسی خفته نماند
                        آنکس که نداند و بداند که نداند / ، لنگان خرک خویش به مقصد برساند
                        آنکس که نداند و نداند که نداند / ، در جهل مرکب ابدالدهر بماند

                        دیدگاه


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

                          جمعا خسته نباشید
                          من مشکل برام پیش اومده
                          چطور میشه فایلی رو باز کردیم و قبلا بسته شده
                          رو در ادامه بنویسیم
                          نه اینکه دوباره رایت بشه
                          هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                          بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                          میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                          تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                          دیدگاه


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

                            نوشته اصلی توسط king_of_hearts90
                            سلام آقای اسدی
                            من دقیقا متوجه نشدم از به روز رسانی یک فایل یعنی چه؟ وقتی ما داریم روش چیزی مینویسیم خودش داره پدیت میشه . مگه چیز دیگه ای هم یک فایل داره که باید به روز بشه؟
                            دوست من وقتی شما فایلی رو فقط مینویسید در جدول فت چیزی (حجم و ادرسهای دیتا) نوشته نمیشه ولی بعد از اتمام کار نوشتن و بستن فایل اطلاعات جدول فت اپدیت میشه یعنی اگر مثلا در حال نوشتن یک دیتا در فایل برق بره یا مموری خارج بشه دیتای فایل از بین خواهد رفت ولی با این دستور جدول فت رو بدون بستن فایل اپدیت میکنید.
                            به همین سادگی :nice:
                            تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
                            به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

                            دیدگاه


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

                              نوشته اصلی توسط n340
                              جمعا خسته نباشید
                              من مشکل برام پیش اومده
                              چطور میشه فایلی رو باز کردیم و قبلا بسته شده
                              رو در ادامه بنویسیم
                              نه اینکه دوباره رایت بشه
                              دقیقا منظور شمارو نفهمیدم مگر نوشتن و رایت کردن فایل فرقی با هم دارن ؟
                              فایل بسته شده رو نمیشه نوشت و حتما برای نوشتن یا خوندن ، فایل باید باز شده باشه.

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

                              دیدگاه


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

                                تا اینجا درست
                                حالا میخوام در ادامه فایل بنویسم نه از ابتدا که دیتا های فایل از بین بره
                                هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                                بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                                میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                                تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                                دیدگاه

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