اطلاعیه

Collapse
No announcement yet.

[آموزش] نحوه استفاده از کتابخانه pff.h

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

    #61
    پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

    مشکل نوشتن من هم حل شد :applause: :applause: :nice: :nice:

    من مراحل ذیل را جلو رفتم
    1- بعد از نوشتن یک نوشتن دیگه شامل pf_write(0,0, &k); برای اتمام کار نوشتن لازمه
    2- بعد از نوشتن برای خواندن یا هر کار دیگری نیاز به باز کردن دوباره فایل است ولی معمولا در باز کردن اول و دوم خطلا می دهد به همین خاطر در یک حلقه اینقدر خوندم تا 0 بر می گردوند البته بجای اینکار delay جواب نداد .
    3- بعد از اینکار با اولین خواندن مقدار 0 را می دهد و مقادیر خوانده شده صحیح می باشد .

    دیدگاه


      #62
      پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

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

      دیدگاه


        #63
        پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

        نوشته اصلی توسط داریوش عباسی
        من سعی می کنم توایعی که آموزش داده می شود را بصورت عملی تست کنم و نتیجه را اعلام کنم .
        تا شاید سهم کوچکی در این بخش داشته باشم .
        اگر دوستان سوالی یا مشکلی داشتند در اینجا مطرح کنند ، اگر بتوانم کمک می کنم .
        با تشکر از شما دوست عزیز
        انسانها 10 دسته اند: دسته ای که باینری میدانند و دسته ای که باینری نمیدانند!

        دیدگاه


          #64
          پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

          باسلام

          ضمن تشکر از دوستان بابت زحمات بی دزیغ تان میخواستم بدونم آیا با pff.h میتوانیم همانند FF.h خودمان داخل درایو فایل جدید ایجاد کنیم ؟
          اگر جواب مثبت باشد چگونه ؟

          دیدگاه


            #65
            پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

            نوشته اصلی توسط Shapour-Ardebil
            باسلام

            ضمن تشکر از دوستان بابت زحمات بی دزیغ تان میخواستم بدونم آیا با pff.h میتوانیم همانند FF.h خودمان داخل درایو فایل جدید ایجاد کنیم ؟
            اگر جواب مثبت باشد چگونه ؟
            من تست نکردم ولی تابع pf_open را که میخواندم عملیاتی برای ساخت فایل نداشت (بر خلاف ff.h)
            امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

            دیدگاه


              #66
              پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

              در مورد تست تابع اخیر:
              اولا تابع نوشتن بیشتر از 500 یا 600 بایت که می خوام توش بنویسم گاهی error می ده و من برای نوشتن 1000 بایت ، 2 بار 500 بایت می ریزم و دفعه دوم با تابع pf_lseek(500);
              انتظار دارم که به مختصات 500 رفته باشه و وقتی می نویسم با کمال تعجب بازهم از اول شروع کرده و روی دیتاهای قبلی نوشته این هم کد من ببخشید که اینقدر شلوغه :
              کد:
                      for(i=0;i<200;i++)
                        {
                          res=pf_open("L1G1.dat");
                          if(res==0) i=200;
                        } 
                        if(res!=0) send_error(0x11);  
                        for(i=0;i<400;i++)
                          buffer[i]=Rx_Data_P0[5+i]; 
                          k=0;
                        res=pf_write(&buffer,400, &k);
                        if(res!=0) send_error(0x12);
                        // pf_write(0,0, &k);
                        for(i=0;i<200;i++)
                        {
                          res=pf_open("L1G1.dat");
                          if(res==0) i=200;
                        } 
                        if(res!=0) send_error(0x13);  
                        for(i=500;i<960;i++)
                          buffer[i-500]=Rx_Data_P0[5+i]; 
                        res=pf_lseek(500); 
                        if(res!=0) send_error(0x14);
                        k=0;
                        res=pf_write(&buffer,500, &k);
                        if(res!=0) send_error(0x15);
                        pf_write(0,0, &k);

              دیدگاه


                #67
                پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                با سلام

                من امروز خودم کشتم ولی نتوانستم چیزی بنویسم (البته در پروتئوس) دوستان لطف کنید ببینید کجا ایراد دارم واگه سمپلی که بتونه رو MMC بنویسه داشته باشید ممنون میشوم من با ff خیلی راحت این کارها را میکنم ولی لازم دارم که در این پروژه از pff استفاده بکنم


                کد:
                 
                
                  unsigned char MyBuffer[15] = {'S','A','L','A','M','\r','\n','F','A','T',' ','T','E','S','T'};
                  FRESULT _result;
                  WORD WriteIndex;
                -
                -
                -
                -
                
                 //------------------------------------------------------------------------------
                  sprintf(Ctemp,"Disk Initialize :" );
                  TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                  do
                  {
                    res = disk_initialize(); 
                    sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                    TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    delay_ms(500);
                  }while(res != FR_OK);
                  delay_ms(1500);
                
                  //------------------------------------------------------------------------------
                  sprintf(Ctemp,"Init fat :" );
                  TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                  do
                  {
                    res = pf_mount(&Fs); 
                    sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                    TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    delay_ms(500);
                  }while(res != FR_OK);  
                  delay_ms(1500);
                    
                  //------------------------------------------------------------------------------
                  sprintf(Ctemp,"open file :" );
                  TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                  do
                  {
                    res = (pf_open(File_Name)); 
                    sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                    TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    delay_ms(500);
                  }while(res != FR_OK);  
                  delay_ms(1500);
                 
                  //-------------------------------------------------------------------------------
                  // Write Data files on the MMC
                  // MMC نوشتن دیتابر روی فایل داخل
                  //-------------------------------------------------------------------------------
                   res = pf_write(&MyBuffer,15, &WriteIndex);
                   pf_write(0,0, &WriteIndex); 
                   
                  if(res == FR_OK)
                  {
                    sprintf(Ctemp,"Write OK WI: %d " , WriteIndex);
                    TextBox (0, 25, GetMaxX(), 26 + LcdFontHeight(),Ctemp , ALINE_LEFT | BORDER_FILL ); 
                  }
                  else
                    TextBox (0, 25, GetMaxX(), 26 + LcdFontHeight(), "Err to Write", ALINE_LEFT | BORDER_FILL );

                دیدگاه


                  #68
                  پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                  نوشته اصلی توسط Shapour-Ardebil
                  با سلام

                  من امروز خودم کشتم ولی نتوانستم چیزی بنویسم (البته در پروتئوس) دوستان لطف کنید ببینید کجا ایراد دارم واگه سمپلی که بتونه رو MMC بنویسه داشته باشید ممنون میشوم من با ff خیلی راحت این کارها را میکنم ولی لازم دارم که در این پروژه از pff استفاده بکنم


                  کد:
                   
                  
                    unsigned char MyBuffer[15] = {'S','A','L','A','M','\r','\n','F','A','T',' ','T','E','S','T'};
                    FRESULT _result;
                    WORD WriteIndex;
                  -
                  -
                  -
                  -
                  
                   //------------------------------------------------------------------------------
                    sprintf(Ctemp,"Disk Initialize :" );
                    TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    do
                    {
                      res = disk_initialize(); 
                      sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                      TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                      delay_ms(500);
                    }while(res != FR_OK);
                    delay_ms(1500);
                  
                    //------------------------------------------------------------------------------
                    sprintf(Ctemp,"Init fat :" );
                    TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    do
                    {
                      res = pf_mount(&Fs); 
                      sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                      TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                      delay_ms(500);
                    }while(res != FR_OK);  
                    delay_ms(1500);
                      
                    //------------------------------------------------------------------------------
                    sprintf(Ctemp,"open file :" );
                    TextBox (0, 25, GetMaxX(), 27 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                    do
                    {
                      res = (pf_open(File_Name)); 
                      sprintf(Ctemp,"%d: %p" ,res, LCD_Result[res]);
                      TextBox (0, 45, GetMaxX(), 46 + LcdFontHeight(), Ctemp, ALINE_LEFT | BORDER_FILL ); 
                      delay_ms(500);
                    }while(res != FR_OK);  
                    delay_ms(1500);
                   
                    //-------------------------------------------------------------------------------
                    // Write Data files on the MMC
                    // MMC نوشتن دیتابر روی فایل داخل
                    //-------------------------------------------------------------------------------
                     res = pf_write(&MyBuffer,15, &WriteIndex);
                     pf_write(0,0, &WriteIndex); 
                     
                    if(res == FR_OK)
                    {
                      sprintf(Ctemp,"Write OK WI: %d " , WriteIndex);
                      TextBox (0, 25, GetMaxX(), 26 + LcdFontHeight(),Ctemp , ALINE_LEFT | BORDER_FILL ); 
                    }
                    else
                      TextBox (0, 25, GetMaxX(), 26 + LcdFontHeight(), "Err to Write", ALINE_LEFT | BORDER_FILL );
                  توی پروتوس باید اول از mmc یک image بگیرید و البته در اون درایو قبلا فایل رو ایجاد کرده باشید بعد اینکار رو بکیند .
                  در صفحات قبل توضیح داده شده است .

                  اضافه شده در تاریخ :
                  یک سوال دیگه :
                  extension فایل آیا تاثیری در کار داره ؟
                  مثلا من که می خوام فایل رو بصورت بایت به بایت بنویسم و بخونم آیا فرقی می کنه که dat. , txt. .hex. باشه ؟

                  دیدگاه


                    #69
                    پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

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

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

                    کد:
                    FRESULT f_close ( *FileObject );
                    بسته میشود وقبل از بستن تغییرات ذخیره می شود در #C هم موقع کار با فایل همین طور است
                    و همین طور تابع

                    کد:
                    f_sync (*FileObject );
                    برای برنامه های کاربردی که فایل های باز برای مدت طولانی در حالت نوشتن خواهد بود مانند انواع لاگر داده مناسب است بعد از هر بار نوشتن دیتا از این دستور استفاده میکنیم تا تغییرات به فایل اعمال بشه ولی فایل بسته نخواهد شد در واقع با این تابع خطر از دست رفتن اطلاعات به علت خاموشی ناگهانی و یا حذف دیسک ناخواسته را به حداقل میرسانید

                    ولی در pff هیچ یک از دستورات بالا نیست پس اعمال تغییرات چگونه انجام میگیرد؟
                    اگر سمپل کامل بگذارید که عمل ذخیره را ببینم ممنون میشوم

                    دیدگاه


                      #70
                      پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                      متاسفانه pff تابعی برای بستن فایل نداره
                      من تست کردم به محض نوشتن اگه با رم ریدر بخونید ، می بینید که نوشته شده ولی همانطور که شما گفتید در ff باید حتما فایل را بست .
                      من در صفحات قبلی ، قسمتی از کد خودم رو گذاشتم که کار نوشتن رو انجام می ده .

                      دیدگاه


                        #71
                        پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                        نوشته اصلی توسط داریوش عباسی
                        در مورد تست تابع اخیر:
                        اولا تابع نوشتن بیشتر از 500 یا 600 بایت که می خوام توش بنویسم گاهی error می ده و من برای نوشتن 1000 بایت ، 2 بار 500 بایت می ریزم و دفعه دوم با تابع pf_lseek(500);
                        انتظار دارم که به مختصات 500 رفته باشه و وقتی می نویسم با کمال تعجب بازهم از اول شروع کرده و روی دیتاهای قبلی نوشته
                        ولی در pff هیچ یک از دستورات بالا نیست پس اعمال تغییرات چگونه انجام میگیرد؟
                        اگر سمپل کامل بگذارید که عمل ذخیره را ببینم ممنون میشوم
                        قبلاً هم گفتم pff بیشتر بدرد خواندن میخوره نه نوشتن :arrow:
                        امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                        دیدگاه


                          #72
                          پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                          نوشته اصلی توسط داریوش عباسی
                          مشکل نوشتن من هم حل شد :applause: :applause: :nice: :nice:
                          --
                          --
                          نوشته اصلی توسط Abbas Sarami
                          قبلاً هم گفتم pff بیشتر بدرد خواندن میخوره نه نوشتن :arrow:
                          با سلام

                          من فایل کدویژن . پروتئوس را میگذارم اگر کسی توانست بنویسد به ما هم بگوید خیلی علاف شدم با FF راحت میشه مانور داد ولی متاسفانه تو فلش جا ندارم برای همین بایداز Pff استفاده بکنم امیدوارم موفق باشید

                          http://s5.picofile.com/file/81148459...Pff_h.zip.html

                          دیدگاه


                            #73
                            پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                            نوشته اصلی توسط Shapour-Ardebil
                            با سلام

                            من فایل کدویژن . پروتئوس را میگذارم اگر کسی توانست بنویسد به ما هم بگوید خیلی علاف شدم با FF راحت میشه مانور داد ولی متاسفانه تو فلش جا ندارم برای همین بایداز Pff استفاده بکنم امیدوارم موفق باشید

                            http://s5.picofile.com/file/81148459...Pff_h.zip.html
                            من برنامه شما رو تست کردم البته یک چیزی رو تغییر بدید در نوشتن و خواندن:
                            pf_read(&buffer,20, &wb)
                            بجز اون چیز دیگری توی برنامه شما ندیدم ولی با پروتیوس کار نمی کنه
                            نمی دونم شاید مشکل از اون image باشه که روی ssd گذاشتید
                            چون در هر حالت مقدار ثابتی رو می خونه .
                            آیا این مقادیر توی فایلتون قبل از گرفتن image بوده و واقعیه ؟

                            دیدگاه


                              #74
                              پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                              بصورت عملی هم بستم ولی بازهم خبری از نوشتن نیست !!!!

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

                              ممنون

                              دیدگاه


                                #75
                                پاسخ : [آموزش] نحوه استفاده از کتابخانه pff.h

                                من با هدرهایی که آقای آراسته توی صفحه اول گذاشتن کار می کنم . همونها رو دانلود کنید باید جواب بده .
                                البته من تا فردا بازهم روی موضوع شما کار می کنم و بهتون خبر می دم .
                                البته سخت افزار من atmega64 داره و نمی تونم برنامه رو مستقیم با اون تست کنم ولی من دقیقا همون کارهایی را که شما کردید با برنامه خودم انجام دادم و جواب می ده ،

                                جواب سوال من رو ندادید که این مقادیری که روی lcd نمایش داده می شه آبا قبلا و عملا روی حافظه شما بوده :
                                آیا این مقادیر توی فایلتون قبل از گرفتن image بوده و واقعیه ؟

                                دیدگاه

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