اطلاعیه

Collapse
No announcement yet.

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

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

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

    نوشته اصلی توسط بسطام بیرامی
    سلام سلام
    آقا دست همه درد نکنه مخصوصا آقای اسدی عزیز
    من بردی رو برای تست بستم و تا 20 هزار نمونه دما رو در شبانه روز برام ذخیره کرد و عالی کار کرد
    فقط یه مشکل نسبتا بزرگ هست که خط آخر برنامه
    کد:
    pf_write(0, 0, &bw);
    اگر اجرا نشه کلا هیچی Save نمیشه
    مثلا مدار یک روز کار کرده و 15 هزار نمونه را گرفته برق قطع شه دیگه هیچی روی SD نیست و کلا همه پر پر
    گفتم بعد از هر نمونه بیام و این خطو
    کد:
    pf_write(0, 0, &bw);
    بنویسم که هر نمونه رو گرفت ذخیره کنه و بعد بره سراغ نمونه بعدی و ...
    اما اینطوری هم فقط آخرین نمونه ذخیره میشه
    میدونید مشکل چییه؟ و چطور میشه این قضیه رو برطرف کرد؟!!!!
    با سلام
    شما باید موقعیت اخرین دیتاتونو که نوشتید رو یادتون باشه تا با تابع pf_lseek به موقعیت خرین دیتاتون رفته و از اونجا بنویسید
    البته میتونید با یه خازن و دیود قطع شدن برق رو تشخیص بدید و فقط همون لحضه این کار رو بکنید

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

    دیدگاه


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

      آقای اسدی درست می فرمایند
      بهترین کار اینه که یک خازن با ظرفیت بالا (حتی یک بانک خازنی) برای تغذیه قرار بدی و هنگامی که برق اصلی قطع شد عملیات نوشتن را تمام کنی
      توی ff تابع f_sync بدرد همین جاها میخوره
      امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

      دیدگاه


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

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

        به همین سادگی :nice:
        مرسی
        بیشتر هدفم کار با کتابخونه pff هست
        که بتونم مشکلشو حل کنم
        اما درست میفرمایید حدس زدم بخاطر lseek باشه و باید حواسم باشه تا کجا نوشتم ته فایلو ببندم بعد از ادامه شروع کنم به نوشتن
        درایور شبکه و nRF24L01
        کاتالوگ محصولات
        کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
        شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
        فروش اسیلوسکوپ GWinstek GOS-630FC

        دیدگاه


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

          نوشته اصلی توسط بسطام بیرامی
          مرسی
          بیشتر هدفم کار با کتابخونه pff هست
          که بتونم مشکلشو حل کنم
          اما درست میفرمایید حدس زدم بخاطر lseek باشه و باید حواسم باشه تا کجا نوشتم ته فایلو ببندم بعد از ادامه شروع کنم به نوشتن
          یه کاری که من معمولا انجام میدم اینه که ابتدای فایل رو برای همین کار در نظر میگیرم
          یعنی یه هدر مثلا 32 بایتی اول فایل رو خالی میزارم تا بتونم این اطلاعات رو اونجا ذخیره کنم
          مثلا 4 بایت اول دیتا ادرس اخرین دیتایی که نوشتم هست
          هربار که فایل رو باز میکنم اول این چهربایت رو میخونم بعد به اون ادرس میپرم و دیتارو مینویسم و اون چهار بایت رو بازم به اخرین دیتام تغییر میدم
          که در نهایت فایل باز نمیمونه و برای هر رکورد فایل باز میشه و دیتا ذخیره میشه و ....

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

          دیدگاه


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

            نوشته اصلی توسط POLESTAR
            یه کاری که من معمولا انجام میدم اینه که ابتدای فایل رو برای همین کار در نظر میگیرم
            یعنی یه هدر مثلا 32 بایتی اول فایل رو خالی میزارم تا بتونم این اطلاعات رو اونجا ذخیره کنم
            مثلا 4 بایت اول دیتا ادرس اخرین دیتایی که نوشتم هست
            هربار که فایل رو باز میکنم اول این چهربایت رو میخونم بعد به اون ادرس میپرم و دیتارو مینویسم و اون چهار بایت رو بازم به اخرین دیتام تغییر میدم
            که در نهایت فایل باز نمیمونه و برای هر رکورد فایل باز میشه و دیتا ذخیره میشه و ....

            به همین سادگی :nice:

            با سلام
            میشه لطف کنید یه نمونه کد از این بخش قرار بدید. منم دقیقاً همین مشکل دارم که وقتی pf_write(0, 0, &bw); رو مینویسم فقط آخرین داده رکورد میشه و اگه ننویسم فقط اولی!
            این bw رو چطور میشه پدیت کرد ؟

            دیدگاه


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

              آدرس آخرین خونه نوشته شده رو چطور میشه بعد از هر بار نوشتن بدست آورد؟
              راه حلی به غیر از نوشتن یه حجم ثابت و ضربش در یه کانتر وجود داره؟

              دیدگاه


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

                کد:
                if(!pf_open("records.txt"));
                         pf_lseek(SDtemp);
                sprintf(Ctemp,"#%u:%s",i,mydata);
                    pf_write(Ctemp,32,&bw);
                SDtemp=i*(unsigned long int)&bw; 
                    pf_write(0, 0, &bw);
                با یه کانتر و آدرس دهی تونستم مشکل تا حدی حل کنم

                دیدگاه


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

                  فایلهای قبلی که من داشتم مربوط به این کتایخانه pf_lseek( کار نمی کرد من هر کاری می کردم از همون اول فایل شروع به خوندن یا نوشتن می کرد .
                  ولی ظاهرا با این فایلهای آقای اسدی مشکل حل شده ، البته من هنوز تست نکردم .

                  این فایلهای آقای اسدی با فایلهای قبلی من خیلی فرق داره !!! آقای اسدی شما این فایلها رو خودتون اصلاح کردید یا از جایی دانلود کردید ؟

                  دیدگاه


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

                    نوشته اصلی توسط داریوش عباسی
                    فایلهای قبلی که من داشتم مربوط به این کتایخانه pf_lseek( کار نمی کرد من هر کاری می کردم از همون اول فایل شروع به خوندن یا نوشتن می کرد .
                    ولی ظاهرا با این فایلهای آقای اسدی مشکل حل شده ، البته من هنوز تست نکردم .

                    این فایلهای آقای اسدی با فایلهای قبلی من خیلی فرق داره !!! آقای اسدی شما این فایلها رو خودتون اصلاح کردید یا از جایی دانلود کردید ؟
                    دقیقا منم میخواستم همین سوالاو بپرسم
                    نکنه شما هم مثل دوستمون ChaN نشستین و کتابخونه خودتونو برای FAT نوشتید؟!! :biggrin:
                    و یه سوال دیگه این که میشه درباره این bw& بیشتر توضیح بدید که کلا چی هست و مثلا وقتی مینویسه به آخر یه کلاستر میرسه دوباره از 0 شروع میکنه؟!!
                    منظورم اینه که مثلا توی یک کلاستر مینویسیم تا 512 بایت پر میشه و bw& هم میشماره تا میرسه به 512
                    برای کلاستر بعدی دوباره 0 میشه یا چطور میشه کلا؟!!!!
                    درایور شبکه و nRF24L01
                    کاتالوگ محصولات
                    کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                    شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                    فروش اسیلوسکوپ GWinstek GOS-630FC

                    دیدگاه


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

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

                      دیدگاه


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

                        نوشته اصلی توسط داریوش عباسی
                        اقای اسدی من اینقدر رفتم توی مقایسه فایل شما و اون فایل قبلی که فایلهای شما رو گم کردم و نفهمیدم کدوم فایل اصلی بود . و البته لینک دانلود هم که داده بودید خراب شده اگه میشه یکبار دیگه بذاربد .
                        یا اگه یکی از دوستان داره لطف کنه .
                        فکر میکنم اینو میگید:
                        http://www.eca.ir/forum2/index.php?topic=55074.285
                        پست شماره292

                        دیدگاه


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

                          نوشته اصلی توسط داریوش عباسی
                          اقای اسدی من اینقدر رفتم توی مقایسه فایل شما و اون فایل قبلی که فایلهای شما رو گم کردم و نفهمیدم کدوم فایل اصلی بود . و البته لینک دانلود هم که داده بودید خراب شده اگه میشه یکبار دیگه بذاربد .
                          یا اگه یکی از دوستان داره لطف کنه .
                          خدمت شما
                          POLESTAR pff Library Files
                          درایور شبکه و nRF24L01
                          کاتالوگ محصولات
                          کنترلر CNC شش محوره برای پرینتر 3D و Pick n Place
                          شبیه ساز تک تیرانداز و سیبل دیجیتال با پردازش تصویر
                          فروش اسیلوسکوپ GWinstek GOS-630FC

                          دیدگاه


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

                            با سلام

                            باتشکر از آقای اسدی عزیز

                            برای من تابع " pf_lseek " موقع خواندن درست عمل میکند ولی وقتی می خواهیم بنویسیم عمل نمیکند وتوی همان آدرس صفر مینویسد من حتی مقدار 10 هم دادم تا در کلاستور جاری باشد باز هم در آدرس صفر نوشت

                            میخواستم بدانم برای شما هم همینطور است ؟ و یا راه حل چیست ؟

                            دیدگاه


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

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

                              دیدگاه


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

                                نوشته اصلی توسط POLESTAR
                                با سلام
                                اینطور که بوش میاد باید یه سمپل بهتون بدم تا همه مشکلات حل بشه
                                با توجه به مشکلاتی که دوستان در پست های قبل مبنی بر مقدارهای اروری هست که تابع pf_write برمیگردونه فکر میکنم مشکلتون از فایل mmc.c باشه
                                در فایل زیر یه نمونه برنامه با استفاده از این توابع نوشتم که فقط با یک if ساده در یک فایل txt به نام write.txt کلمه POLESTAR رو 50000 بار مینویسه به این صورت که در هر خط شماره خط هم شامل میشه که هر خط 16 بایت هست در 50000 خط که در کل حدود 800015 بایت و 1562 سکتور هست
                                با سلام و تشکر از همه اساتید که لطف کردن این تاپیک مفید رو ایجاد کردن
                                من همه مراحل رو گام به گام رفتم و همش واسم جواب داد فقط این کد جناب pole star رو که تست می کنم ، یک فایل 240 کیلو بایتی میسازم تا 15 هزار بار میشه توش نوشت اما حجم فایل رو که 400 میکنم ، کلا دیگه چیزایی که توش مینویسه علایم عجیب و غریب میشه و حتی یک بار هم توش دیتا اصلی رو نشون نمیده
                                میشه راهنماییم کنید ؟
                                Don't hesitate to ask any question ..

                                دیدگاه

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