اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام،

    آقایون بازم معذرت میخوام، این تغییرات زیر رو هم برای نمایش سریعتر تصویر پیشنهاد میدم....

    کد:
    //GLOBAL VARIABLES.....
    int 												TS_margin_xl 			= 0;
    int 												TS_margin_xr 			= TS_SIZE_X - 1;
    int 												TS_margin_yu 			= 0;
    int 												TS_margin_yl 			= TS_SIZE_Y - 1;
    
    unsigned int 								newX							= 0;
    unsigned int 								newY							= 0;
    
    //
    //
    //
    //
    
    //-----------------------------------------------------------------------
    // Set LCD working area for draw picture, fill etc.
    //-----------------------------------------------------------------------
    void tftlcd_SetArea(int sx,int ex,int sy,int ey)
    {
    	if (sx < TS_margin_xl)  				sx = TS_margin_xl;
    	if (ex > TS_margin_xr)  				ex = TS_margin_xr;
    	if (sy < TS_margin_yu)  				sy = TS_margin_yu;
    	if (ey > TS_margin_yl)  				ey = TS_margin_yl;
    	newX = ex - sx + 1;
    
    
    	tftlcd_write_index_register(TS_INS_START_ADX);			tftlcd_write_wdr(sx);
    	tftlcd_write_index_register(TS_INS_END_ADX);				tftlcd_write_wdr(ex);
    	tftlcd_write_index_register(TS_INS_GRAM_ADX);				tftlcd_write_wdr(sx);
    
    	#if !PORTRAIT
    		sy = TS_SIZE_Y - 1 - sy;    										// mirror start y address
    		ey = TS_SIZE_Y - 1 - ey;    										// mirror end 	y address
    		newY = sy - ey + 1;
    
    		tftlcd_write_index_register(TS_INS_START_ADY);		tftlcd_write_wdr(ey);
    		tftlcd_write_index_register(TS_INS_END_ADY);			tftlcd_write_wdr(sy);
    		tftlcd_write_index_register(TS_INS_GRAM_ADY);			tftlcd_write_wdr(sy);
    	#else
    		newY = ey - sy + 1;
    
    		tftlcd_write_index_register(TS_INS_START_ADY);		tftlcd_write_wdr(sy);
    		tftlcd_write_index_register(TS_INS_END_ADY);			tftlcd_write_wdr(ey);
    		tftlcd_write_index_register(TS_INS_GRAM_ADY);			tftlcd_write_wdr(sy);
    	#endif
    
    	tftlcd_write_index_register(TS_INS_RW_GRAM);
    }
    
    //-----------------------------------------------------------------------
    // Show A Picture On The LCD Screen (from memory)
    //-----------------------------------------------------------------------
    void tftlcd_write_pic(int sx,int sy,int ex,int ey,const unsigned short *pointer)
    {
    	unsigned int 			counter_x;
    	unsigned int 			counter_y;
    	 
    	 
    	tftlcd_SetArea(sx,ex,sy,ey);
    	
    	for (counter_y=0; counter_y<newY; counter_y++)
    		for (counter_x=0; counter_x<newX; counter_x++)
    			tftlcd_write_wdr((int)*pointer++);
    }
        
    //-----------------------------------------------------------------------
    // Show A Picture On The LCD Screen (from MMC...) - NOT TESTED!
    //-----------------------------------------------------------------------
    void tftlcd_write_mpic(int sx,int sy)
    {
     unsigned int 			ex;
     unsigned int 			ey;
    	
    	unsigned int 			counter_x;
    	unsigned int 			counter_y;
    
    	unsigned char			buffer[720];
    	unsigned char 		res;
     unsigned int			br;
         
     ex = sx + bmpWidth-1;
     ey = sy + bmpHeight-1;
    
     tftlcd_write_index_register(TS_INS_ENTRY_MOD);
     tftlcd_write_wdr(0x0010);
    
    	tftlcd_SetArea(sx,ex,sy,ey);
    
    	//-------------------
    	for (counter_y=0; counter_y<newY; counter_y++)
     {
     	res = f_read(&fil,buffer,newX,&br);	
      if(res)			return(res);
      	
    		for (counter_x=0; counter_x<newX; counter_x+=3)
      {
      		tftlcd_write_wdr((int)( (( buffer[counter_x+2]>>3)<<11) | ((buffer[counter_x+1]>>2)<<5) | (buffer[counter_x]>>3) ));
      }
     }
    	//-------------------
    
     tftlcd_write_index_register(LCD_INS_ENTRY_MOD);
     tftlcd_write_wdr(LCD_VAL_ENTRY_MOD);
    }

    ( اینجا کدها رو یه کمی درهم نشون میده، کپی کنید توی ادیتور کدتون، درست نشونشون میده! )

    موفق باشید
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

    دیدگاه


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

      این فایل اکسپلور فقط رو ورژن keil 4.2 جواب میده؟روی keil 4.1 نمیشه جواب گرفت؟چرا؟
      در ضمن این لایسنسی که گفته شده رو از کجا میشه گرفت؟

      دیدگاه


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

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

        eca.exe (17.5 کیلوبایت - دفعات دانلود: 232 بار.)

        دیدگاه


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

          سلام به همه ی دوستان
          من پروژه File Explorer v1.01 رو تست کردم همه چی درسته الا نمایش تصویر BMP
          صحبت های دوستان و راه کار هایی هم که ارایه شد بررسی کردم مشکل هم چنان وجود داره
          با توجه به صحبت هایی که تو انجمن دیدم مشکل باید تو کدهای این حلقه باشه ؟!!!!
          کد:
           if (image_color == 24) {
          			 		for (index=0;index<5760;) { .... ???? }
          در ضمن من با ساختار فایل های BMP آشنایی دارم ولی کدهایی که توی برنامه ی main پروژه File Explorer v1.01 هست رو متوجه نمیشم
          مثلا متغیر های index و bmp_code_index نقششون چی هست و این شرط هایی که برای index چک میشه برای چه منظوریه؟ :question:

          [
          کد:
          if (index == 11) bmp_code_index = ch;
          			else if (index == 19) image_wi += ch;
          			else if (index == 20) image_wi |= (ch<<8);
          			else if (index == 23) image_hi += ch; 
          			else if (index == 24) image_hi |=(ch<<8);
          			else if (index == 29) image_color = ch;
          			else if (index == 30)
          از دوستان ممنون میشم راهنمایی کنید

          دیدگاه


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

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

            eca.exe (17.5 کیلوبایت - دفعات دانلود: 232 بار.)
            من نتونستم این فایل رو دتنلود کنم اگه ممکنه میشه یکی دوباره up کنه

            دیدگاه


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

              با با لینک که سالمه
              http://www.eca.ir/forum2/index.php?action=dlattach;topic=52211.0;attach=735 2

              دیدگاه


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

                نوشته اصلی توسط sajjad_b_ir
                با با لینک که سالمه
                http://www.eca.ir/forum2/index.php?action=dlattach;topic=52211.0;attach=735 2
                بله ولی من از اونجا نتوستم دانلود کنم تا 98% میره ولی بعد interupt میشه،با IDM هم دانلود میکنم ولی نمیدونم مشکل از کجاست؟

                دیدگاه


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

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

                  دیدگاه


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

                    نوشته اصلی توسط MISO
                    سلام به همه ی دوستان
                    من پروژه File Explorer v1.01 رو تست کردم همه چی درسته الا نمایش تصویر BMP
                    صحبت های دوستان و راه کار هایی هم که ارایه شد بررسی کردم مشکل هم چنان وجود داره
                    با توجه به صحبت هایی که تو انجمن دیدم مشکل باید تو کدهای این حلقه باشه ؟!!!!
                    کد:
                     if (image_color == 24) {
                    			 		for (index=0;index<5760;) { .... ???? }
                    در ضمن من با ساختار فایل های BMP آشنایی دارم ولی کدهایی که توی برنامه ی main پروژه File Explorer v1.01 هست رو متوجه نمیشم
                    مثلا متغیر های index و bmp_code_index نقششون چی هست و این شرط هایی که برای index چک میشه برای چه منظوریه؟ :question:

                    [
                    کد:
                    if (index == 11) bmp_code_index = ch;
                    			else if (index == 19) image_wi += ch;
                    			else if (index == 20) image_wi |= (ch<<8);
                    			else if (index == 23) image_hi += ch; 
                    			else if (index == 24) image_hi |=(ch<<8);
                    			else if (index == 29) image_color = ch;
                    			else if (index == 30)
                    از دوستان ممنون میشم راهنمایی کنید
                    کسی نمیخواد جواب منو بده؟! :cry: :cry:
                    لطفا یکی راهنمایی کنه !!!! :sad:

                    دیدگاه


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

                      نوشته اصلی توسط ahmad2000
                      سلام
                      کسی راجع به تغییر سایز عکسها کاری نکرد؟؟
                      ماکه هرچه زدیم به در بسته خوردیم.
                      در مورد نمایش فایلهای jpg چه طور کسی کار نکرد؟ :sad:
                      سلام
                      من یه کارایی کردم.
                      اگر کد هگز عکسو توی میکرو بریزی کامل کار میکنه.
                      ولی برای MMC هنوز جواب نگرفتم.
                      کامل که شد میزارم حالشو ببرین. :job:
                      زندگی یعنی امید و حرکت
                      کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                      سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                      برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                      به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                      دیدگاه


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

                        من از خود سایت keil ، ی Version 4.21 (June 2011) MDK-ARM رو دانلود کردم و با همین لایسنسی که اینجا هست گذاشتم برنامه رو که compile می کنم error های زیر رو میده! چرا؟
                        Build target 'AT91SAM7X'
                        compiling Getline.c...
                        compiling main.c...
                        assembling SAM7.s...
                        compiling File_Config.c...
                        compiling SPI_SAM7X.c...
                        compiling RTX_Conf_SAM7X.c...
                        compiling Serial.c...
                        compiling Retarget.c...
                        linking...
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        File_Explorer.axf: Error: L9937E: RL-ARM is not allowed with this license
                        Target not created

                        دیدگاه


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

                          Miso مشکل اول که گفتید دقیقا چیه؟ وقتی فایل bmp را انتخاب میکنید دقیقا چه اتفاقی مییفته؟
                          در مورد کدها هم که قبلا توضیح دادم شما یک فایل bmp را در نظر بگیر ، طبق قرار دادی که برای این نوع فایل هست توی خونه 19 و 20 باید طول تصویر توی خونه 23و24 باید عرض تصویر(توجه داشته باش که چون ابعاد این نوع تصوی میتونه بیش از 255پیکسل باشه برای مقادیر طول و عرض در مجموع چهار بایت در نظر گرفته شده) و توی خونه 29باید نوع کدگذاری فایل قرار داده بشه، ما این مقادیر را از فایل بدست میاریم تا در موقع نمایش تصویر ابعاد تصویر و نوع محاسبات لازم برای بدست آوردن مقدار هر پیکسل را تشخیص بدیم

                          دیدگاه


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

                            نوشته اصلی توسط sajjad_b_ir
                            Miso مشکل اول که گفتید دقیقا چیه؟ وقتی فایل bmp را انتخاب میکنید دقیقا چه اتفاقی مییفته؟
                            در مورد کدها هم که قبلا توضیح دادم شما یک فایل bmp را در نظر بگیر ، طبق قرار دادی که برای این نوع فایل هست توی خونه 19 و 20 باید طول تصویر توی خونه 23و24 باید عرض تصویر(توجه داشته باش که چون ابعاد این نوع تصوی میتونه بیش از 255پیکسل باشه برای مقادیر طول و عرض در مجموع چهار بایت در نظر گرفته شده) و توی خونه 29باید نوع کدگذاری فایل قرار داده بشه، ما این مقادیر را از فایل بدست میاریم تا در موقع نمایش تصویر ابعاد تصویر و نوع محاسبات لازم برای بدست آوردن مقدار هر پیکسل را تشخیص بدیم
                            ممنون دوست عزیز
                            من دو تا تصویر BMP مختلف رو تست کردم
                            عکس اول که یک عکس 320*240 هست رو نشون میده به اینصورت که تصویر رو از پایین LCD به صورت ردیف به ردیف نشون میده تا نمایش عکس تکمیل میشه اما این عکس رو صفحه نمیمونه و بلافاصله از روی صفحه میره صفحه کاملا سفید رنگ میشه و بعد از 1 ثانیه اطلاعات تصویر رو در قسمت پایین LCD نمایش میده
                            و اما در مورد عکس دوم که یک عکس 159*240 هست، روش نمایش اینم به صورت ردیفی از پایین به بالاست. اما این یکی رو که کلا از همون اول جای عکس یه تصویر سفید نمایش میده و قسمت پایین عکس هم (از 159 تا 320) صورتی رنگه.
                            فکر میکنید مشکل از کجا باشه؟

                            کد قسمت نمایش تصویر هم این هست

                            کد:
                            do { 
                            	 		 fread (&ibuffer,1,(image_wi*3),f);
                            			 i++;
                            			 if (image_color == 24) {
                            			 		for (index=0;index<(image_wi*3);index++) {
                            
                            						lcd_data = (fgetc(f)&0xF8)<<8; //bug &0xF1	 
                            						lcd_data |= (fgetc(f)&0xFC)<<3;	//bug <<4 
                            						lcd_data |= (fgetc(f))>>3;
                            
                            						TFTLCD_CS_LOW;
                            						TFTLCD_WR_LOW;
                            						TFTLCD_DATAPORT_CLEAR;
                            						_TFTLCD_DATAPORT_SODR_ = (lcd_data << TFTLCD_DATAPORT_OFFSET);
                            						TFTLCD_WR_HIGH;
                            						TFTLCD_CS_HIGH;	 
                            					}
                            			 }
                            		}while ((i*(image_wi*3))!=(3*image_wi*image_hi));
                            		sprintf(buffer,"%i * %i 0x%xbit 0x%x",image_wi,image_hi,image_color,Pixel_Array_Size);
                            		tftlcd_gotoxy(0,19);
                            		tftlcd_puts(buffer,BLACK,RED,1);	
                            	}

                            دیدگاه


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


                              در مورد مشکلاتی که گفتید : اول اینکه نمایش تصویر اول شما در بهترین حالت اتفاق میفته توجه داشته باشید که وقتی ما RTX را از پروژه حذف کردیم برنامه وقتی وارد یک حلقه میشه دیگه سایر موارد را نمیتونه چک کنه یعنی وقتی پروسسور داره نمایش تصویر را انجام میده دیگه نمیتونه تاچ را چک کنه که ما بتونیم یک کلید برای برگشت از روند نمایش تصویر قرار بدیم . بنابراین ما بعد از نمایش تصویر یک تاخیر را ایجاد میکنیم و بعد از روتین نمایش برمیگردیم.البته این چیزی که شما به عنوان مشکل مطرح کردید یکی از محدودیتهای این پروژه هست و میشه حلش کرد.
                              در مورد تصویر دوم به نظر میاد که تصویر دوم شما RGB24 نیست ، توی پست قبلی که اشاره کردم ما باید ابتدا نوع کد گذاری فایل BMP را تشخیص بدیم بعد روتینی برای محاسبه مقدار هر پیکسل در نظر بگیریم که توی کدهای شما تمام فایل های BMP با محاسبات RGB24 روبرو میشوندو اصلا نوع کد گذاری چک نمیشه، و همین باعث میشه که دیتای مربوط به هر پیکسل برابر باFFFFFFFF بشه که همون رنگ سفید هست

                              دیدگاه


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

                                اگه برنامه اصلیمون چیز دیگه ای باشه ولی نیاز به استفاده از این برنامه در کنار برنامه اصلیمون باشیم، main این برنامه یا برنامه اصلی رو چه جوری یا با چه دستوراتی باید تغییر بدیم؟
                                در ضمن تو این برنامه نیازی به تعریف پایه های lcd نیست؟مثل زیر؟
                                /* LCD Pin Configuration */
                                #define TFTLCD_DATAPORT_B
                                #define TFTLCD_DATAPORT_OFFSET 0
                                #define TFTLCD_CONTROLPORT_A
                                #define TFTLCD_RST 16
                                #define TFTLCD_RS 17
                                #define TFTLCD_CS 18
                                #define TFTLCD_WR 19
                                #define TFTLCD_RD 20

                                دیدگاه

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