اطلاعیه

Collapse
No announcement yet.

کتابخانه ff.h

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

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

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

    اما راجع به شرکت ها. ممکنه از ده تا شرکت یکی هم از این فرم ها استفاده نکنن. من خودم به این دلیل سراغ این کتابخونه اومدم چون پروژه ای بر اساس LPC1768 دستمه که متاسفانه بعد از کلی کد زدن متوجه شدم که کتابخانه های کیل امکان دسترسی به فایل رو در حد READ_WRITE به برنامه نمیده. و این یک ضعف عمده محسوب میشه.

    راستی اگر منظورتون هم از بابت "آقا" نویسنده اصلی بوده باشه که باز هم وقت و عمرتون رو نجات داده. چون در غیر این صورت من نوعی مجبور میشدم کلی کد برای ایجاد این امکانات بنویسم. بنا براین در هر دوحالت برای افزایش بهره وری عمرمون به هر دو "آقا" مدیونیم.

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

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

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

    دیدگاه


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

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

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

      دیدگاه


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

        تابع دهم f_readdir

        کد:
        FRESULT f_readdir (
         DIR* DirObject,  // Pointer to the open directory object 
         FILINFO* FileInfo // Pointer to the file information structure 
        );


        (اشاره گر ساختار فایل ، اشاره گر پوشه باز شده)f_opendir
        هست

        حالا این تابع چیه و به چه درد میخوره؟
        برای خواندن محتوای داخل یک پوشه به کار میره

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

        ورودی و خروجی هاش؟
        دو ورودی داره
        1 : اشاره گر پوشه DirObject یه اشاره گر به متغیری که باید قبل از این تابع از نوع استراکچر DIR تعریف شده باشه
        2 : اشاره گر ساختار فایل FileInfo یه اشاره گر به متغیری که باید قبل از این تابع از نوع استراکچر FILINFO تعریف شده باشه

        و یک خروجی خطا داره که 7 حالت داره
        FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_INVALID_OBJECT, FR_TIMEOUT, FR_NOT_ENOUGH_CORE

        توضیح خطا ها هم مثل توابع قبلی هست

        برای استفاده از این تابع FS_MINIMIZE_ باید کوچکتر یا مساوی یک باشد



        بعد از این تابع شما میتونید هر کاری رو بر روی هر فایلی انجام بدید توابع بعدی توابع متفرقه ای هستند و برای انجام برخی کارهای ساده و یا راحت تر شدن کار نوشته شده اند البته باز هم ادامه خواهم داد و همه توابع رو توضیخ خواهم داد
        ولی فعلا با همین توابه براتون یه مثال میارم که برای جستجوی در فایلها به کار میره

        به طور مثال میخواهیم در یک درایو فقط فایل های MP3 رو تشخیص داده و اونهارو پخش کنیم این گونه عمل خواهیم کرد
        برای اینکه دستورات خواناتر باشند و به هم نریزه من توضیحات فارسی رو در سطز بعدی دستورات نوشتم

        کد:
        FRESULT scan_files (char* path)
        		{
          	FRESULT res;
          	FILINFO fno;
          	DIR dir;
            pos_ts pos;
          	int i;
          	char *fn;
            char Cfile[128];
        #if _USE_LFN
          	static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
          	fno.lfname = lfn;
          	fno.lfsize = sizeof(lfn);
        #endif
          	res = f_opendir(&dir, path); 
            // باز کدن پوشه
          	if (res == FR_OK) 
            		{
            		i = strlen(path);
            		for (;;) 
                		{
              			res = f_readdir(&dir, &fno);
                    // خواندن محتوای پوشه
              			if (res != FR_OK || fno.fname[0] == 0) break; 
                    // تشخیص انتهای پوشه
              			if (fno.fname[0] == '.') continue;       
                    // نادیده گرفتن نقطه
        #if _USE_LFN
              			fn = *fno.lfname ? fno.lfname : fno.fname;
        #else
              			fn = fno.fname;
        #endif
              			if (fno.fattrib & AM_DIR)
                    // در صورتی که محتوای پوشه یک پوشه باشد
                				{
                        //sprintf(&path[i], "/%s", fn);
                        if(strlen(path) > 0)strcatf(path, "/");
                        strcat(path, fn);
                				res = scan_files(path);
                				if (res != FR_OK) break;
                				path[i] = 0;
              					} 
                    else
                    // در صورتی که محتوای پوشه یک فایل باشد
                    		{
                        strcpy(Cfile, path); 
                        strcatf(Cfile, "/");
                        strcat(Cfile, fn);
                				//sprintf(Cfile,"%s/%s", path, fn);
                        if(strstrf(Cfile, ".MP3") || strstrf(Cfile, ".mp3")) 
                        // باشد MP3 در صورتی که فایل
                        		{
                        		//..
                            // فراخوانی توابعی که برای پخش فایل های پیدا شده نیاز هست
                            }
              					}
            				}
          			}
          	return res;
        		}



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

        دیدگاه


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

          آقای اسدی عزیز
          1) امکانش هست که کلیه فایل های موجود با پسوند های مختلفی که شایدم نمیدونیم :eek: رو سرچ کنیم؟؟؟؟ oo:
          2) فایل هایی که مستقیم به مموری کارت زدیم رو چطوری سرچ کنیم :question:
          برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

          دیدگاه


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

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

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

            دیدگاه


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

              نوشته اصلی توسط محمد صادق ساعی
              سلام
              من هم یک سوال:
              برای ذخیره سازی عکس بر روی مموری مثلا" عکسبرداری با دوربین و ذخیره بر روی مموری ، سیستم به چه صورت هست؟ چون اگر اشتباه نکنم کتابخانه های معرفی شده مربوط به Text هستند.
              سلام
              این کتابخونه ها فقط برای text نیست
              میتونید با داشتن فرمت ها یک عکس ذخیره کنید!
              من خودم یه برنامه نوشتم که میتونه کل محتویات lcd رو تبدیل به یک عکس با فرمت bmp کنه :smile:
              همون طور که میتونیم یک عکس با فرمت bmp رو رو ال سی دی نشون بدیم :biggrin:
              موفق باشید
              برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

              دیدگاه


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

                نوشته اصلی توسط hossein_tomari007
                سلام
                این کتابخونه ها فقط برای text نیست
                میتونید با داشتن فرمت ها یک عکس ذخیره کنید!
                من خودم یه برنامه نوشتم که میتونه کل محتویات lcd رو تبدیل به یک عکس با فرمت bmp کنه :smile:
                همون طور که میتونیم یک عکس با فرمت bmp رو رو ال سی دی نشون بدیم :biggrin:
                موفق باشید
                حسین جان اگر این قابلیت ذخیره فایل BMP رو بتونی به MP3 Playr ورژن 3 اضافه کنی و براش به محیط مثل Paint ویندوز درست کنی بنده یکی از بردهای مونتاژشده و امادشو برات نصف قیمت هدیه میکنم
                البته اگه مایل باشی

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

                دیدگاه


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

                  نوشته اصلی توسط hossein_tomari007
                  آقای اسدی عزیز
                  1) امکانش هست که کلیه فایل های موجود با پسوند های مختلفی که شایدم نمیدونیم :eek: رو سرچ کنیم؟؟؟؟ oo:
                  2) فایل هایی که مستقیم به مموری کارت زدیم رو چطوری سرچ کنیم :question:
                  دوست من با این مثال میتونید همه فایل های داخل هر پوشه یا درایوی رو چک کنید
                  خروجی این تابع رو میتونید با سریال به PC وصل کرده و ترمینال کدویژن یه چیزی مثل دستور DIR داس رو داشته باشید
                  فقط کافیه نام پوشه یا درایو را در ورودی تابع بهش بدید

                  کد:
                  FRESULT scan_files (
                    char* path    // Start node to be scanned (also used as work area)
                  )
                  {
                    FRESULT res;
                    FILINFO fno;
                    DIR dir;
                    int i;
                    char *fn;  // This function is assuming non-Unicode cfg.
                  #if _USE_LFN
                    static char lfn[_MAX_LFN + 1];
                    fno.lfname = lfn;
                    fno.lfsize = sizeof(lfn);
                  #endif
                  
                  
                    res = f_opendir(&dir, path);            // Open the directory
                    if (res == FR_OK) {
                      i = strlen(path);
                      for (;;) {
                        res = f_readdir(&dir, &fno);          // Read a directory item
                        if (res != FR_OK || fno.fname[0] == 0) break; // Break on error or end of dir
                        if (fno.fname[0] == '.') continue;       // Ignore dot entry
                  #if _USE_LFN
                        fn = *fno.lfname ? fno.lfname : fno.fname;
                  #else
                        fn = fno.fname;
                  #endif
                        if (fno.fattrib & AM_DIR) {          // It is a directory
                          sprintf(&path[i], "/%s", fn);
                          res = scan_files(path);
                          if (res != FR_OK) break;
                          path[i] = 0;
                        } else {                    // It is a file.
                          printf("%s/%s\n", path, fn);
                        }
                      }
                    }
                  
                    return res;
                  }


                  اگه میخواید درایو رو سرچ کنید فقط کافیه وردی تابع رو خالی بدید این یعنی دایرکتری یا درایو جاری
                  ولی اگه قراره یه پوشه رو چک کنید نام و ادرس پوش رو بهش بدید مثلا اگه قراره پوشه data رو در پوشه system چک بشه باید اینطور بنویسید "System/data"

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

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

                  دیدگاه


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

                    نوشته اصلی توسط POLESTAR
                    حسین جان اگر این قابلیت ذخیره فایل BMP رو بتونی به MP3 Playr ورژن 3 اضافه کنی و براش به محیط مثل Paint ویندوز درست کنی بنده یکی از بردهای مونتاژشده و امادشو برات نصف قیمت هدیه میکنم
                    البته اگه مایل باشی
                    خیلی ممنون از لطفتون
                    اما متاسفانه من کمبود وقت دارم طوری که خودم به کارای خودم نمیرسم :sad:
                    اما اگه مایل باشید همین تابعی رو که نوشتم رو بزارم تو این تاپیک تا شما و بقیه دوستان استفاده کنید :nice:
                    برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

                    دیدگاه


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

                      کد:
                      char bmp_info_24bit[54]={0x42,0x4d, 0x38,0x84,0x03,0x00, 0x00,0x00,0x00,0x00, 0x36,0x00,0x00,0x00, 0x28,0x00,0x00,0x00,
                       0xf0,0x00,0x00,0x00, 0x40,0x01,0x00,0x00, 0x01,0x00, 0x18,0x00, 0x00,0x00,0x00,0x00, 0x02,0x84,0x03,0x00, 0x12,0x0b,0x00,
                      0x00, 0x12,0x0b,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00};
                      
                      void crate_bmp_24bits(char* fname)
                      {
                      unsigned char byte_h,byte_l;
                      
                      if (f_open(&file,fname,FA_WRITE|FA_CREATE_ALWAYS) == FR_OK)
                      if (f_write(&file,bmp_info_24bit,sizeof(bmp_info_24bit),&nbytes) == FR_OK)
                      Lcd_SetBox(0,0,239,319);
                      
                        for(j=0;j<320;j++)
                        {
                        LCD_PORT_OUTPUT();
                        LCD_WR_REG(0x21,j);
                          for(i=0;i<720;i+=3)
                          {
                          LCD_PORT_OUTPUT();
                          LCD_WR_REG(0x20,(239-i/3));
                          LCD_WR_REG16(0x0022);
                          LCD_PORT_INPUT();
                          lcd_rs_h();
                          lcd_wr_h();
                          lcd_cs_l();
                          lcd_rd_l();
                          lcd_rd_h();
                          lcd_rd_l();
                          lcd_rd_h();
                            lcd_rd_l();
                            #asm("nop")
                            #asm("nop")
                            #asm("nop")
                            byte_h=DATA_LCD_PIN;
                            lcd_rd_h();
                            lcd_rd_l();
                            #asm("nop")
                            #asm("nop")
                            #asm("nop")
                            byte_l=DATA_LCD_PIN;
                            lcd_rd_h();
                            buffer[i]=byte_h&0b11111000; //red
                            buffer[i+1]=((byte_h&0b00000111)<<5)|(byte_l>>3);  //green
                            buffer[i+2]=byte_l<<3;  //blue
                          lcd_cs_h();
                          }
                        f_write(&file,buffer,720,&nbytes); 
                        }
                      LCD_PORT_OUTPUT();
                      f_close(&file);
                      }
                      اگه مشکلی بود مطرح کنید
                      برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

                      دیدگاه


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

                        سلام خدمت دوستان عزیز
                        میخواستم ببینم کلاک واحد spi حداقل و حداکثر چقدر بایستی باشه؟؟؟؟؟ :cry: :sad:
                        برای آنکه کاری امکان پذیر گردد دیدگان دیگری لازم است، دیدگانی نو

                        دیدگاه


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

                          نوشته اصلی توسط hossein_tomari007
                          سلام خدمت دوستان عزیز
                          میخواستم ببینم کلاک واحد spi حداقل و حداکثر چقدر بایستی باشه؟؟؟؟؟ :cry: :sad:
                          با سلام
                          دوست من هرچقدر که میتونی بالاتر قرار بده تا سرعت رید و رایت بالاتری داشته باشی
                          سرعت SD یا MMC خیلی بالاتر از این هاست و میکروی ما خیلی محدوده البته بستگی به نوع و کلاس مموری داره ولی باز بیشتر از سرعت AVR هست حتی اگر اورکلاکش کرده باشید

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

                          دیدگاه


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

                            سلام
                            آقای اسدی گفتی اورکلاک یادم اومد بپرسم میکرو mega32 رو با ولتاژ3.3 ولت تا چه فرکانسی میشه run کرد آخه من یه بار LCD n96 رو به این میکرو با این ولتاژوصل کردم و سیستم رو با آرشیو کیریستالهایی که داشتم پله به پله اورکلاک کردم تا به 26.601712MHz رسیدم و بازم کار کرد ولی وقتی دوباره برگشتم به 24MHz بعد یه مدتی کار، حافظه فلش میکرو سلولهاش به سرعت یکی یکی سوخت
                            حالا واقعا ضرفیت AVR چقدره تا بتونیم برای fat32 هم استفاده کنیم؟ oo:
                            http://qsmile.com/qsimages/124.gif

                            دیدگاه


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

                              نوشته اصلی توسط hesam1
                              سلام
                              آقای اسدی گفتی اورکلاک یادم اومد بپرسم میکرو mega32 رو با ولتاژ3.3 ولت تا چه فرکانسی میشه run کرد آخه من یه بار LCD n96 رو به این میکرو با این ولتاژوصل کردم و سیستم رو با آرشیو کیریستالهایی که داشتم پله به پله اورکلاک کردم تا به 26.601712MHz رسیدم و بازم کار کرد ولی وقتی دوباره برگشتم به 24MHz بعد یه مدتی کار، حافظه فلش میکرو سلولهاش به سرعت یکی یکی سوخت
                              حالا واقعا ضرفیت AVR چقدره تا بتونیم برای fat32 هم استفاده کنیم؟ oo:
                              با سلام
                              ایا در موردی که میفرمایید اطمینان دارید ؟ احتمال میدم ولتاژ شما بالاتر از 3.3 ولت باشه
                              چون بنده با این ولتاژ بیشتر از 16 مگاهرتز جواب نگرفتم
                              در مورد فرکانسهای بالاتر از 16 هم باید بگم حتما باید ولتاژ شما بالاتر از 5 ولت باشه البته حدود نیم ولت نه بیشتر
                              اما مقدارشو بنده بیشتر از 20 مگاهرتز توصیه نمیکنم
                              در ضمن این اورکلاک کردن میکرو بستگی شدید به نوع میکرو و سری ساختش داره و لول تستش

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

                              دیدگاه


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

                                سلام
                                مطمعنم چون سرعت رفرش صفحه LCD هم به نسبت زیاد میشد و ولتاژ هم با ولت متر 3.3 ولت بود البته من وقتی این موضوع رو به چشم دیدم خیلی تعجب کردم واسه همین جوگیر شدم و کریستال 40MHz هم وصل کردم که البته به دلیلی که اساتید میدونن روی یک سوّم این فرکانس یعنی حدود 13.5MHz قفل شد و باز هم کار کرد.
                                از همه معذرت میخوام نمیخاستم بحث رو منحرف کنم.
                                آقای اسدی لطف کنید و بقیه توابع کاربردی رو هم بگید.
                                http://qsmile.com/qsimages/124.gif

                                دیدگاه

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