اطلاعیه

Collapse
No announcement yet.

فایل اکسپلورر mmc به وسیله arm

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

    #91
    پاسخ : فایل اکسپلورر mmc به وسیله arm

    سلام ، در مورد باز کردن عکس jpg من از استادمون سوال کردم کتابهای اصول پردازش تصویر گنزالس و شبکه های کامپیوتری (شباوم) بخش چند رسانه ای را توصیه کرد . از این دوتا کتاب من دومی را پیدا کردم و خوندم و از jpg ناامید شدم چون اون جوری که نوشته بود الگوریتم ریاضی jpg یه کم پیچیده است مثلا نوشته بود فرض کنید یک عکس دارید که نصف تصویر اون آسمونه و کد رنگهای نصف پیکسلها یکسانه توی فرمتهای غیر از bmp برای این جور موارد یک الگوریتم ریاضی پیاده میشه که درنهایت نتیجه اون الگوریتم مقدار همه پیکسل ها را بر میگردونه، من خودم از رمزگشایی الگوریتم ترسی ندارم ولی مشکل اینه که الگوریتم رمز گذاری در دسترس نیست. اگه کسی بتونه پیداش کنه خیلی خیلی خیلی خوشحال میشم که بیاره تا ببینیم چیه و چه جوریه استادمون میگفت که احتمال داره این الگوریتم توی کتاب fund a mental of multimedia که یک کتاب زبان اصلیه پیدا بشه و میگفت pdf اون توی اینترنت گیر میاد . اگه پیداش کنین واقعا عالی میشه (ضمنا آینده باز کردن jpg خیلی روشنه چون اگه بشه jpg را رمزگشایی کرد از اون میشه برای باز کردن فریم های فرمت ویدئویی mpeg استفاده کرد )
    در مورد سرعت پخش، اگه خودتون برنامه را بهینه کنید یک کم بیشتر میشه منظورم اینه که مثلا توی نمایش فایل bmp اگه توجه کنید برای نمایش هر پیکسل شرطهای خطوط 146 تا 170 دائم چک میشه که اصلا لازم نیست.و راه خیلی بهتر استفاده از تابع fread . در مورد مثال این تابع هم خیلی راحته
    char buf [2000];
    این که یک تعریف آرایه 2000 از متغیر char هست و باید به تعریف متغیر ها اضافه بشه و
    fread(&buf,1,2000,f);
    با اجرای خط بالا 2000 تا مقدار یک بایتی از فایلی که باز شده بوده و f داره به اون اشاره میکنه(یعنی هرجا استفاده از getc مجازه استفاده از fread هم مجازه) در کسری از ثانیه خوانده میشه و در آرایه buf قرار میگیره که میتونید بایک FOR……NEXT در مورد بایتهای buf تصمیم گیری کنید. فقط حواستون باشه که EOF توی بایتها نمیاد و انتهای فایل را باید خودتون محاسبه کنید که مثلا تعداد بایتهای یک فایل rgb24 برابر
    (image_wi*image_hi)*3 هست.
    محاسبات RGB24 هم در خطوط 170 و 171 و 172 فایل مین قرار داره توی کروشه مربوط به if (image_color == 24)

    دیدگاه


      #92
      پاسخ : فایل اکسپلورر mmc به وسیله arm

      خیلی ممنون از آقا سجاد و بقیه دوستان که اشکالات برنامه رو مطرح میکنن.
      موقع نوشتن برنامه متاسفانه وقت کم بود و فرصت نشد بعضی نکات برای نمایش سریع عکسها رو رعایت کنم.
      در مورد مشکلی که بعضی از دوستان داشتند و پوشه ها باز نمیشند ایراد کار رو پیدا کردم. تو تابع get_entry سطر آخرش یه return 0 داره که باید حذف بشه. این سطر رو برای اینکه کامپایلر warning نده تو دقیقه آخر اضافه کرده بودم و تو برنامه خودم نبود. اگه هر مشکل دیگه ای دارن یا باگی دیدن مطرح کنین . یا اگه تونستین فرمت تازه ای باز کنین حتی اگه کامل نباشه کدشو بزارین تا روش کار کنیم و ورژن بعدی بهش اضافه کنیم. منم بررسی میکنم ببینم میشه Jpeg رو گدگشائی کرد یا نه.

      با استفاده از تابع fread سرعت نمایش تقریبا 4 برابر بیشتر میشه(حدود 1 ثانیه).از اونجایی که برای ارسال دیتای به LCD از هیچ تابعی استفاده نشده و اطلاعات پشت سر هم و بدون تاخیر برای پالسهای RW و CS ارسال میشن فکر کنم از لحاظ برنامه نویسی این سرعت حداکثر باشه . مگه اینکه کدهای محاسبه و نمایش زیر رو یه جور خلاصه کنیم :

      lcd_data = (ibuffer[index++]&0xF8)<<8;
      lcd_data |= (ibuffer[index++]&0xFC)<<3; //bug <<4
      lcd_data |= (ibuffer[index++])>>3;
      TFTLCD_CS_LOW;
      TFTLCD_WR_LOW;
      TFTLCD_DATAPORT_CLEAR;
      _TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
      TFTLCD_WR_HIGH;
      TFTLCD_CS_HIGH;

      متغیر ibuffer همون بافر fread هست.
      این بخش از برنامه که بالا گذاشتم برای هر نمایش عکس کامل دقیقا 76800 بار اجرا میشن که اگه زمان نمایش 1 ثانیه باشه هر اجرای دستورات بالا 13 میکروثانیه زمان میبره. با توجه به فرکانس 70 مگاهرتزی CPU دستورات محاسبه ای فکر نکنم وقت زیادی بگیرن ولی چون پورتهای سری AT91SAM7 به باس کم سرعت وصلن فکر کنم بیشتر تاخیر مربوط به تغییر وضعیت پورتها هست. :question:
      حالا نمیدونم بعضی از دوستان چطوری تونستن در هر ثانیه 25 تا تصویر نشون بدن. oo:


      دیدگاه


        #93
        پاسخ : فایل اکسپلورر mmc به وسیله arm

        سلام آقای جعفر پور شما لطف دارید . بابت حل مشکل پوشه ها کلی ممنون خیلی حال کردم. در مورد سرعت موافقم نمیشه سرعت را بیشتر از این کرد .اول مشکلم را مطرح کنم : من وقتی میکرو را ریست میکنم و بعد از چند ثانیه که مموری چک میشه و... و لیست فایلها نشان داده میشه فایل اول و دوم را که باز میکنم مشکلی نیست ولی فایل سوم را که باز میکنم صفحه بنفش میاد و دیگه نمیشه کاری کرد و باید دوباره ریست کنم. شما این مشکل را دارید؟ به نظرتون مشکل از کجاست؟ سوال دیگه ای هم که دارم درمورد اندازه بافر fread هست که من تا 3500 بیشتر جواب نگرفتم و شما چقدر جواب گرفتید؟
        در مورد فرمت جدید هم من که توی صفحات قبلی با کلی ذوق اومدم گفتم چند تا فریم از یک فایل avi را پخش کردم ولی کسی تحویل نگرفت :sad: :sad: من خودم کار را تقریبا تا آخر پخش تصاویر ادامه دادم ولی یک مشکل کوچیک هست که اون هم حل شدنی هست و دیگه کم کم دارم میرم سراغ صوت . من منتظر بودم شما کمک بدین که خبری نشد، اگه اشتباه نکنم توی صفحات اول گفتید که تونستید mp3 را پخش کنید حالا اگه علاقه ای به نمایش فایل avi دارید مطرح کنید تا این دوتا را کنار هم قرار بدیم و فایل avi را به صورت کامل پخش کنیم :nerd: :nerd:

        دیدگاه


          #94
          پاسخ : فایل اکسپلورر mmc به وسیله arm

          همونطور که میبینین تو این پروژه از RTX استفاده شده و مشکل هنگ کردن مربوط میشه به RTX و احتمال 99% پر شدن استک.منم حافظه استک را تا حداکثرش بالا بردم ولی بازم مشکل هست.RTX در کنار مزایای خیلی زیادی ، مشکل هنگ کردن زیاد داره و باید به پر شدن استک دقت کرد. چک میکنم ببینم میشه یه کاریش کرد یا نه.

          در مورد فایل avi وقعا عالیه :applause: میتونین در موردش یکم توضیح بدین ؟ فریم ها چطوری و با چه فرمتی ذخیره میشن ؟ چند سطر برنامه نوشتین ؟
          منم MP3 رو تونستم با کیفیت خیلی خوب پخش کنم ولی از decoder سخت افزاری استفاده کردم ( آیسی vs1003 )
          چه حالی میده از این به بعد فیلم ها رو رو هدر برد تماشا میکنیم :biggrin:
          فریم ریت چقدر تونستین بگیرین ؟

          دیدگاه


            #95
            پاسخ : فایل اکسپلورر mmc به وسیله arm

            دوستان یه مشکل دیگه هم هست نمیدونم کسی تا حالا دقت کرده یا نه ولی عکس ها رو بر عکس نشون میده
            مثلا اگه اصل عکس این باشه





            اینجوری نشون میده






            برای رفع این مشکل باید چی کار کرد ؟؟



            من تو help keil دیدم که برای باز کردن http فایل با پسوند jpeg هم باز کرده ببینید



            حالا نمیدونم دقیقا چطور باید ازش استفاده کرد


            دوست عزیز sajjad_b_ir لطف کنید سورس پروژتون رو بزارید که بقیه هم استفاده کنند شما واقعا کار بزرگی کردی من که بی صبرانه منتظرم که پروژه رو بزارید

            دیدگاه


              #96
              پاسخ : فایل اکسپلورر mmc به وسیله arm

              باسلام و تشکر از همه دوستان
              من هم مشکل هنگ کردن بعد از 3 بار نمایش رو دارم و از طرفی مشکی که دوستمون smart گفتند که عکسها برعکسه نیز وجود داره .ولی چون فکر میکردم که اشتباه از منه مطرحش نکرده بودم سرعت هم که بماند
              حضرت علی(ع):
              أَشرَفُ الخَلاَئِقِ اَلوَفَا بِالعَهد.
              شریفترین خصلتها وفاى به عهد است.

              دیدگاه


                #97
                پاسخ : فایل اکسپلورر mmc به وسیله arm

                من هم این مشکل بر عکس شدن رو دارم

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

                من هر کاری کردم نتونستم از تابع fread استفاده کنم لطف کنید یi برنامه که این تغییرات توش ایجاد شده بزاره

                دیدگاه


                  #98
                  پاسخ : فایل اکسپلورر mmc به وسیله arm

                  [quote author=رامین جعفرپور link=topic=52211.msg282668#msg282668 date=1312461084]
                  خیلی ممنون از آقا سجاد و بقیه دوستان که اشکالات برنامه رو مطرح میکنن.
                  موقع نوشتن برنامه متاسفانه وقت کم بود و فرصت نشد بعضی نکات برای نمایش سریع عکسها رو رعایت کنم.
                  در مورد مشکلی که بعضی از دوستان داشتند و پوشه ها باز نمیشند ایراد کار رو پیدا کردم. تو تابع get_entry سطر آخرش یه return 0 داره که باید حذف بشه. این سطر رو برای اینکه کامپایلر warning نده تو دقیقه آخر اضافه کرده بودم و تو برنامه خودم نبود. اگه هر مشکل دیگه ای دارن یا باگی دیدن مطرح کنین . یا اگه تونستین فرمت تازه ای باز کنین حتی اگه کامل نباشه کدشو بزارین تا روش کار کنیم و ورژن بعدی بهش اضافه کنیم. منم بررسی میکنم ببینم میشه Jpeg رو گدگشائی کرد یا نه.

                  با استفاده از تابع fread سرعت نمایش تقریبا 4 برابر بیشتر میشه(حدود 1 ثانیه).از اونجایی که برای ارسال دیتای به LCD از هیچ تابعی استفاده نشده و اطلاعات پشت سر هم و بدون تاخیر برای پالسهای RW و CS ارسال میشن فکر کنم از لحاظ برنامه نویسی این سرعت حداکثر باشه . مگه اینکه کدهای محاسبه و نمایش زیر رو یه جور خلاصه کنیم :

                  lcd_data = (ibuffer[index++]&0xF8)<<8;
                  lcd_data |= (ibuffer[index++]&0xFC)<<3; //bug <<4
                  lcd_data |= (ibuffer[index++])>>3;
                  TFTLCD_CS_LOW;
                  TFTLCD_WR_LOW;
                  TFTLCD_DATAPORT_CLEAR;
                  _TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
                  TFTLCD_WR_HIGH;
                  TFTLCD_CS_HIGH;

                  متغیر ibuffer همون بافر fread هست.
                  این بخش از برنامه که بالا گذاشتم برای هر نمایش عکس کامل دقیقا 76800 بار اجرا میشن که اگه زمان نمایش 1 ثانیه باشه هر اجرای دستورات بالا 13 میکروثانیه زمان میبره. با توجه به فرکانس 70 مگاهرتزی CPU دستورات محاسبه ای فکر نکنم وقت زیادی بگیرن ولی چون پورتهای سری AT91SAM7 به باس کم سرعت وصلن فکر کنم بیشتر تاخیر مربوط به تغییر وضعیت پورتها هست. :question:
                  حالا نمیدونم بعضی از دوستان چطوری تونستن در هر ثانیه 25 تا تصویر نشون بدن. oo:

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

                  دیدگاه


                    #99
                    پاسخ : فایل اکسپلورر mmc به وسیله arm

                    سلام ،
                    اول مشکل تصاویر برعکس را سریع بگم تا حل بشه بعد بریم سر اصل مطلب، امیدوارم درست یادم مونده باشه ولی تا اونجا که یادمه من توی خط 133فایل tftlcd_funtions مقدار TS_VAL_ENTRY_MOD را از 0x0030 به 0x0010 تغییر دادم، درست شد، اگه مشکل حل نشد بگید تا دقیق تر نگاه کنم دوباره توضیح بدم. از این بگذریم در مورد avi شما که اینقدر مشتاق بودین چرا زودتر نمیگید، دیگه داغون شدم از بس همه مشکلات را تا اینجا تنهایی حل کردم. یه مقدمه کوتاه بگم : من از اولش دنبال پخش کردن فایل های مولتی میدیا بودم و کلی اطلاعات در مورد انواع فایل ها با پسوندهای مختلف پیدا کردم و بلاخره یکی دو هفته پیش بود که توی یک برنامه تبدیل فایل های ویدئویی دیدم برای تبدیل به فایل ویدئویی avi میشه نوع رمز گذاری صدا و تصویر را دستی انتخاب کرد اونجا من تونستم فرمت تصاویر را روی rgb24 قرار بدم و فرمت صدارا روی mp3 ، فریم بر ثانیه را هم روی 10 و ابعاد تصویر را روی 100در 100 پیکسل قرار دادم(همینجا معلوم میشه که این تازه برنامه ای برای نمایش یک نوع فایل avi هست که تازه اون هم فقط تصویر، من توی اون برنامه یک سری فرمت دیدم که اصلا آشنا نبود). البته من تا اولین فریم را نشان ندادم، امیدی به این کار نداشتم اینکه چطوری ابتدای فریم ها و ابتدای صدارا پیدا کردم اگه لازمه بگید تا توضیح بدم.
                    در مورد اینکه آقای جعفر پور گفتند از vs1003 استفاده کردند باید بگم اگه از vs1003 استفاده نکنیم شاید اصلا نشه ادامه بدی ، چون رمز گذاری mp3 خودش دریایی از مشکلات مشابه jpg داره که مهمترینش نبود سورس رمز گذاری هست و اینکه باید توجه کنیم که ما توی bmp با فرمت rgb24 در واقع با توی سه خط کل رمزگشایی را انجام میدیم و نباید خیلی به خودمون افتخار کنیم چون داریم یک سری اطلاعات خام را پخش میکنیم و ازهمین بابت هم اندازه یک فایل هشت ثانیه ای avi با مشخصات بالا میشود
                    (((100*100)*3)*10)*8=2400000 byte=2.4 Mbyte
                    که این فقط حجم تصویره و حالا اگه صدا هم هیچ رمزگذاری نشده باشه و مثلا بیت ریت هم 128 باشه دیگه ببیند چی میشه پس بهتره فرمت صدا mp3 بمونه وما هم بگیم ، رمز گذاری mp3 چه ربطی به ما داره vs1003 خودش با mp3 کنار میاد.
                    برنامه ای که نوشتم پر از خطوط اضافی هست که مطمئنا شما را سر در گم میکنه من سعی میکنم یه کم پاکسازیش کنم بعد در اختیارتون میذارم آقا رامین یک کم در مورد فایل های صوتی توضیح بدید . توی فایل avi اطلاعات صوت یک ثانیه بعد از 10 تا فریم میاد مشکلی برای پخش صدا پیش نمی یاد من شنیدم ارتباط با vs1003 باید پایدار باشه و اگه اینجوری نباشه صدا تکه تکه پخش میشه یک کم توضیحات کلی در مورد این آی سی بدید. ما صوت و تصویر را باهم میخواهیم پخش کنیم مشکلی پیش نمیاد

                    دیدگاه


                      پاسخ : فایل اکسپلورر mmc به وسیله arm

                      دوستان برای رمز گشایی jpeg کسی به help نرم افزار keil نگاه انداخت چیزی ازش فهمیدید

                      دیدگاه


                        پاسخ : فایل اکسپلورر mmc به وسیله arm

                        دوستان ببخشید من نمیدونم این چند خط برنامه رو باید کجا کپی کنم که سرعت پخش عکس زیاد بشه

                        لطفا راهنمایی کنید

                        دیدگاه


                          پاسخ : فایل اکسپلورر mmc به وسیله arm

                          نوشته اصلی توسط رامین جعفرپور
                          خیلی ممنون از آقا سجاد و بقیه دوستان که اشکالات برنامه رو مطرح میکنن.
                          موقع نوشتن برنامه متاسفانه وقت کم بود و فرصت نشد بعضی نکات برای نمایش سریع عکسها رو رعایت کنم.
                          در مورد مشکلی که بعضی از دوستان داشتند و پوشه ها باز نمیشند ایراد کار رو پیدا کردم. تو تابع get_entry سطر آخرش یه return 0 داره که باید حذف بشه. این سطر رو برای اینکه کامپایلر warning نده تو دقیقه آخر اضافه کرده بودم و تو برنامه خودم نبود. اگه هر مشکل دیگه ای دارن یا باگی دیدن مطرح کنین . یا اگه تونستین فرمت تازه ای باز کنین حتی اگه کامل نباشه کدشو بزارین تا روش کار کنیم و ورژن بعدی بهش اضافه کنیم. منم بررسی میکنم ببینم میشه Jpeg رو گدگشائی کرد یا نه.

                          با استفاده از تابع fread سرعت نمایش تقریبا 4 برابر بیشتر میشه(حدود 1 ثانیه).از اونجایی که برای ارسال دیتای به LCD از هیچ تابعی استفاده نشده و اطلاعات پشت سر هم و بدون تاخیر برای پالسهای RW و CS ارسال میشن فکر کنم از لحاظ برنامه نویسی این سرعت حداکثر باشه . مگه اینکه کدهای محاسبه و نمایش زیر رو یه جور خلاصه کنیم :

                          lcd_data = (ibuffer[index++]&0xF8)<<8;
                          lcd_data |= (ibuffer[index++]&0xFC)<<3; //bug <<4
                          lcd_data |= (ibuffer[index++])>>3;
                          TFTLCD_CS_LOW;
                          TFTLCD_WR_LOW;
                          TFTLCD_DATAPORT_CLEAR;
                          _TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
                          TFTLCD_WR_HIGH;
                          TFTLCD_CS_HIGH;
                          متغیر ibuffer همون بافر fread هست.
                          این بخش از برنامه که بالا گذاشتم برای هر نمایش عکس کامل دقیقا 76800 بار اجرا میشن که اگه زمان نمایش 1 ثانیه باشه هر اجرای دستورات بالا 13 میکروثانیه زمان میبره. با توجه به فرکانس 70 مگاهرتزی CPU دستورات محاسبه ای فکر نکنم وقت زیادی بگیرن ولی چون پورتهای سری AT91SAM7 به باس کم سرعت وصلن فکر کنم بیشتر تاخیر مربوط به تغییر وضعیت پورتها هست. :question:
                          حالا نمیدونم بعضی از دوستان چطوری تونستن در هر ثانیه 25 تا تصویر نشون بدن. oo:
                          با سلام
                          جناب جعفرپور،
                          مجموعه کدهای فوق ، در SAM7X در هر دوره تکرار (یک پیکسل) حدود 50 سایکل وقت می گیرند.
                          در سرعت غیر مجاز / اورکلاک شده 70 مگاهرتز(حد مجاز=55 مگاهرتز) هر سایکل ، حدود 15 نانو ثانیه است،
                          لذا به 750 نانو ثانیه برای هر پیکسل ، وقت نیاز است.
                          برای 320*240=76800 پیکسل ، به 50000 میکرو ثانیه یا 50 میلی ثانیه وقت نیاز است.
                          برای سایر عملیات(خواندن sd و ...) نیز در حدود 25000 سایکل اضافه کنید،
                          لذا برای هر عکس به زمان 75 میلی ثانیه نیاز دارید.
                          در نتیجه تا 15 تصویر در ثانیه باید قابل پخش باشد.

                          تعداد بایت انتقالی = 76400*2*15 = 2000000 = 2 مگابایت در ثانیه( که این پردازنده در سرعت مورد نظر شما قادر به انجام این کار می باشد)

                          بنابراین اگر یک تصویر در ثانیه سرعت دارید، اشکالی در برنامه دارید که اجازه سرعت مناسب را نمی دهد.

                          با سپاس

                          پ.ن:
                          محاسبات ذکر شده در بالا، بر اساس تجربه کار با SAM7X256 نوشته شده( مقدار زیادی آزمون و سیمولیشن برای کار دیگر)
                          من ، LCD چینی را با این سیستم راه اندازی ننموده ام ، لذا کدی هم در اختیار ندارم ،
                          صرفا محاسبه و بیان شرایطی است که انتظار می رود با سرعت 15 عکس در ثانیه بتوانید نمایش BMP داشته باشید.
                          گشتی در لاله زار
                          http://www.eca.ir/forum2/index.php?topic=76138.0

                          http://www.eca.ir/forum2/index.php?topic=76141

                          دیدگاه


                            پاسخ : فایل اکسپلورر mmc به وسیله arm

                            از زحمات آقا سجاد خیلی ممنون من مشکل کیفیتم حل شد و همچنین برعکس نشون دادن عکس ها ولی همچنان با سرعت مشکل دارم.
                            ولی یه نکته دیگه ای هم که هست اینه که تاچ من اصلا دقیق نیست و باید بگم که حدود یک سانت از سمت چپ ال سی دی قسمت تاچش اصلا کار نمی کنه و من خودم با تغییری که تو این قسمت دادم یکم بهترش کردم //x1 = 240-(x1*219/x_range);
                            //y1 = 320-(y1*320/y_range);
                            x1 = 300-(x1*210/x_range);
                            y1 = 280-(y1*280/y_range);
                            ولی همچنان سمت چپ کار نمی کنه .
                            من بردم از سری قدیمه و Vref نداره و تماسی که با شرکت گرفتم گفتن که یه مقاومت و یه خازن رو از روی برد بردارم و بجاش سیم وصل کنم احتمال داره بخاطر این موضوع باشه؟
                            یعنی Vref احتیاجی به خازن نداره؟!
                            مشکل دیگه هم اینه که پوشه رو باز میکنه ولی در برگشتش یه بار برمیگرده یه بار نه و یا وقتی یه عکسو از داخل یه پوشه باز می کنیم عکسو نشون میده ولی بعدش که به لیست فایل ها بر مگرده یه سری از اسمها ی فایلهایی که توی پوشه بودند حذف میشن.
                            یا علی گفتیم و عشق آغاز شد.

                            دیدگاه


                              پاسخ : فایل اکسپلورر mmc به وسیله arm

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

                              خواهش می کنم من واقعا لنگ این سورس کد هستم


                              دوست عزیز Solsal من از شما خواهش میکنم سورس کدی رو که با این سرعت ازش جواب گرفتید بزارید
                              خواهش می کنم من واقعا بهش نیاز دارم لطفا بزارید
                              من نمیدونم دیگه چی باید بگم که بزارید این سورس رو :angry: :angry: :angry:

                              دیدگاه


                                پاسخ : فایل اکسپلورر mmc به وسیله arm

                                سلام دوستان مثل اینکه اصلا دوست ندارند خودشون برنامه نویسی کنند ، ما دو سه روزه داریم میگیم از fread استفاده کنید باور کنید ماخودمون برنامه را می نویسیم و از جایی کپی نمی کنیم با این حال من این قسمت را با استفاده از for ……next نوشتم از متغیر flag هم برای جلوگیری از چک شدن شرطها استفاده کردم i , jهم از نوع int هستند و buf1 هم یک آرایه 2000 تایی از نوع char هست. این برنامه ای هست که من خودم استفاده میکنم

                                کد:
                                if (par[strlen(par)-3]=='B')  { // if file is bmp
                                 		index=0;
                                		image_wi = 0;
                                		image_hi = 0;
                                		j=0;
                                		flag=0;
                                //		while ((ch = fgetc (f)) != EOF) { 
                                
                                for(;;){
                                
                                fread(&buf1,1,1998,f);
                                	for(i=0;i<1998;i++){
                                	j++;
                                		if(j==(image_wi*image_hi))
                                		{
                                		flag=200; 
                                		break;
                                		}
                                		if (flag==256)goto img256; 
                                		if (flag==16)goto img16;
                                		if (flag==24)goto img24;
                                			index++;
                                			if (index == 11) bmp_code_index = buf1[i];
                                			else if (index == 19) image_wi += buf1[i];
                                			else if (index == 20) image_wi |= (buf1[i]<<8);
                                			else if (index == 23) image_hi += buf1[i]; 
                                			else if (index == 24) image_hi |=(buf1[i]<<8);
                                			else if (index == 29) image_color = buf1[i];
                                			else if (index == 30) {	// end reguire description . init LCD
                                
                                				if (image_wi>240 | image_hi>320 | (image_color !=24 && image_color !=16 && image_color !=8)){
                                					tftlcd_gotoxy(0,1);	
                                					sprintf(buffer,"%i * %i 0x%xbit",image_wi,image_hi,image_color);
                                					tftlcd_puts(buffer,BLACK,RED,1);
                                					tftlcd_gotoxy(0,2);
                                					tftlcd_putsf("This Format Not Supported",BLACK,RED,1);
                                					return 0;
                                				}else {
                                
                                					tftlcd_init_hispeed(0,image_wi-1,0,image_hi-1);
                                					TFTLCD_RS_HIGH;
                                				}	
                                			}else if (index>bmp_code_index){
                                				lcd_data = 0;
                                				if (image_color == 8) {	 
                                					flag=256;
                                img256:				lcd_data = (buf1[i]*0x101);
                                				}if (image_color == 24) {	 
                                					flag=24;
                                img24:											
                                					lcd_data = (buf1[i]&0xF8)<<8;
                                					i++;
                                					lcd_data |= ((buf1[i]&0xFC)<<3);
                                					i++;
                                					lcd_data |= ((buf1[i]&0xF8)>>3); 	
                                					
                                				  /*
                                					lcd_data = (ch&0xF1)<<8;
                                					lcd_data |= (fgetc(f)&0xFC)<<4;
                                					lcd_data |= (fgetc(f))>>3; 	 */
                                				}else if (image_color == 16) {
                                					flag=16;
                                img16:				lcd_data = buf1[i] << 8;
                                					i++;
                                					lcd_data |= buf1[i];
                                				}
                                				TFTLCD_CS_LOW;
                                				TFTLCD_WR_LOW;
                                				TFTLCD_DATAPORT_CLEAR;
                                				_TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
                                				TFTLCD_WR_HIGH;
                                				TFTLCD_CS_HIGH;
                                				}
                                			} 
                                		if(flag==200)break;
                                		}			 //end while
                                		sprintf(buffer,"%i * %i 0x%xbit",image_wi,image_hi,image_color);
                                		tftlcd_gotoxy(0,19);
                                		tftlcd_puts(buffer,BLACK,RED,1);
                                	
                                	
                                 	fclose (f); // close file 
                                	flag=0;            
                                	return 1;
                                	}else if (par[strlen(par)-3]=='A') {		// if file is AVI

                                در مورد جایگزینی توی برنامه از خطی که توضیح if file is bmp // را داره شروع میشه و به else if بعدی که مربوط به فایل بعدی هست ادامه پیدا میکنه
                                من مطمئنم دوستان دیگه برنامه های بهتری نوشتند ولی من هر چی داشتم ، همین بود

                                دیدگاه

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