ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 14 1234567891011 ... آخرین
نمایش نتایج: از 1 به 10 از 132
  1. #1
    2012/05/30
    کرمان
    793
    19

    دیکد فرمت های تصویری و نمایش روی LCD 3.2 با LPC1768

    سلام به همگی.

    در این تاپیک میخواهیم به کمک دوستان چند تا از فرمت های تصویری رو دیکد و روی LCD 3.2 نشون بدیم.
    از هدر برد LPC1768 و ماژول LCD 3.2 استفاده میکنیم.
    از دوستانی که قبلا کار کردن و یا علاقه به کار کردن در این زمینه دارند تقاضای همکاری میشه.
    قبل از هر چیز دوستان باید Flash-FS رو راه انداخته باشن.
    اگه راه ننداختین

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    توضیحات خیلی مختصری در این مورد هست در حد راه اندازی.
    هدف اینه که با نوشتن نام یک عکس،عکس از MMC خوانده شود و روی LCD نمایش دهیم.
    از پست بعد با دیکد BMP شروع میکنیم.

    [hr]
    نتیجه دیکد BMP در

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    پست.
    نتیجه دیکد JPG در

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    پست.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  2. #2
    2012/05/30
    کرمان
    793
    19

    پاسخ : دیکد فرمت های تصویری و نمایش روی LCD 3.2 با LPC1768

    سلام

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

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    اون چیزی که برای کار ما نیازه این جدوله که باید این پارامتر ها رو از فایل بخونیم و براساس اون عمل کنیم.

    پارامتر هایی که تو عکس مشخص کردم حداقل معلومات برای دیکد کردن عکس هست.که:
    Bitmap offset آفست آدرس شروع پیکسل های عکس.
    Height و Width هم که طول و عرض عکس هستند برحسب پیکسل.
    Bits per pixel مشخص کننده تعداد بیتهای رنگ یه پیکسل از عکس.
    همون طور که میبینید تعداد بایت های هر پارامتر هم جلوی اونها نوشته شده و این پارامتر ها به ترتیب از ابتدای فایل شروع میشن پس اگه یه عکس با فرمت BMP رو با winhex باز کنید میتونید این اطلاعات رو ببینید:

    خب اطلاعاتی که تو تصویر بالا دیدید مربوط میشه به یه عکس 240 *320 که رنگهاش 16 بیتیه و آفست آدرس شروع رنگهاش هم 0x46 هست.
    با داشتن این اطلاعات دیگه نمایش عکس کاری نداره.
    دوستان همت کنند که کدش هم آماده بشه.
    من فعلا lcd ندارم.

    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  3. #3
    2006/08/05
    48
    0

    پاسخ : ديکد فرمت هاي تصويري و نمايش روي LCD 3.2 با LPC1768

    سلام
    من قبلا اين کار رو توي چندتا از پروژه هام انجام دادم
    عکسها بايد به صورت 24 بيت ذخيره شده باشند
    من قبلا با فايل سيستم خود کيل کار مي کردم اما الان مدتي هست که به جاي اون از FatFs

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    استفاده مي کنم البته داخل کد توابع مربوط به فايل سيستم کيل کامنت شده و شما مي تونيد به راحتي کد رو تغيير بدهيد.
    اين تابع تقريبا با سايز عکس مشکي نداره اما بعضي از عکسهاي کوچيک رو بد نشون مي ده .


    کد:
     typedef struct BMIH { //declares BitMap Info Header structure
    	uint32_t biSize;      //Length of bitmap information header (40 bytes for Windows V3 bitmaps)
    	uint32_t biWidth;      //Width (pixels)
    	uint32_t biHeight;     //Height (pixels)
    	uint16_t biPlanes;     //Color planes, always 1
    	uint16_t biBitCount;    //Color bits per pixel (1, 4, 8, 16, 24 and 32)
    	uint32_t biCompression;   //Compression method, we only read uncompressed (type 0)
    	uint32_t biSizeImage;    //Image data length
    	uint32_t biXPelsPerMeter;  //Horizontal resolution (pixels per meter)
    	uint32_t biYPelsPerMeter;  //Vertical resolution (pixel per meter)
    	uint32_t biClrUsed;     //Number of colors, ignored.
    	uint32_t biClrImportant;  //Number of important colors, ignored.                 
    }BMP_INFO;
    
    typedef struct BMFH { //declares BitMap File Header structure
    	//uint16_t bfType;      //Always 0x42 0x4D (hex for BM <-- indicating a bitmap)
    	uint32_t bfSize;      //File size (bytes)
      uint16_t bfReserved1;   //Reserved, ignored
      uint16_t bfReserved2;   //Reserved, ignored
      uint32_t bfOffBits;    //Location in file of the first bitmap data        
    }BMP_HEADER;
    
    
    void LCDOutDat2(unsigned char dath,unsigned char datl) //write data to LCD
     {
    		//			int tt;
    		unsigned short dat;
    		dat=dath;
    		dat=dat*256;
    		dat=dat+datl;
    
    		LPC_GPIO1->FIODIRH=0xFFFF;																			
    
    		LPC_GPIO1->FIOCLRH=0xFFFF;
    
    		LPC_GPIO0->FIOSET=(1<<20);//set rs
    		LPC_GPIO0->FIOSET=(1<<22);//set rd
    		LPC_GPIO0->FIOCLR=(1<<21); //reset wr
    
    		LPC_GPIO1->FIOSETH = dat ;
    
    		LPC_GPIO0->FIOCLR=(1<<19);//reset cs
    		LPC_GPIO0->FIOCLR=(1<<19);//reset cs for delay
    
    		LPC_GPIO0->FIOSET=(1<<19);//set cs
    		LPC_GPIO0->FIOSET=(1<<21);//set wr
    
    		LPC_GPIO1->FIODIRH=0x0000;
    }
    
    unsigned short RGB(unsigned char B, unsigned char G, unsigned char R)
      {
        B = B >> 3; 
        G = G >> 2;
        R = R >> 3;
        LCDOutDat2((R << 3) | (G >> 3), (G << 5) | B );
    	}
    		
    unsigned char lcd_showBMP(unsigned int sx, unsigned int sy, char* fname)  // support BMP 24 bit True color only
        {
    	int i,len;
    	BMP_HEADER BMPHeader;
    	BMP_INFO BMPInfo;
    				
    	FIL fsrc;     /* file objects */
    // 		FILE *f;	
    	FRESULT res;
    	UINT br;
    					
        unsigned int x,y;
        unsigned int ex,ey;
        unsigned char buffer[3];
    					
        
    		f_mount(0,&Fatfs[0]);
    					
    
    		//f = fopen(fname,"r");
    		res = f_open( &fsrc , fname , FA_READ|FA_OPEN_EXISTING);
    		//fread(&BMPHeader,1,2,f);
    		res = f_read(&fsrc, &BMPHeader, 2, &br);
    		//fread(&BMPHeader,1,sizeof(BMPHeader),f);
    		res = f_read(&fsrc, &BMPHeader, sizeof(BMPHeader), &br);
    
    // 	if (BMPHeader.bfType != 0x4d42 )                return 3; // type is 'BM'
    //		fread(&BMPInfo,1, sizeof(BMPInfo), f);    					// read bmp info
    		res = f_read(&fsrc, &BMPInfo, sizeof(BMPInfo), &br);
    		
    		
    //   if (BMPInfo.biSize    != 40)                return 5; //unknown header format/length
    //   if (BMPInfo.biPlanes   !=  1)                return 6; //this should be 1
    //   if (BMPInfo.biWidth    > 240)                return 7; //image over size
    //   if (BMPInfo.biHeight   > 320)                return 8; //image over size
    //   if (BMPInfo.biCompression !=  0)                return 9; //0=no compression
    
     		bmpWidth = BMPInfo.biWidth;
     		bmpHeight = BMPInfo.biHeight;
         
        ex = sx + bmpWidth-1;
        ey = sy + bmpHeight-1;
        if (sx < LCD_margin_xl)sx = LCD_margin_xl;
        if (ex > LCD_margin_xr)ex = LCD_margin_xr;
        if (sy < LCD_margin_yu)sy = LCD_margin_yu;
        if (ey > LCD_margin_yl)ey = LCD_margin_yl;
    
        
        LCDOutIns(LCD_INS_ENTRY_MOD);
        LCDOutDat(0x38);
                
        LCDOutIns(LCD_INS_START_ADX);
        LCDOutDat(sx);
        LCDOutIns(LCD_INS_END_ADX);
        LCDOutDat(ex);
        LCDOutIns(LCD_INS_GRAM_ADX);
        LCDOutDat(sx);
        x = (ex - sx + 1);
    
    #ifndef LCD_ORN_PORTRAIT
        sy = LCD_SIZE_Y - 1 - sy;
        ey = LCD_SIZE_Y - 1 - ey;
        LCDOutIns(LCD_INS_START_ADY);
        LCDOutDat(ey);
        LCDOutIns(LCD_INS_END_ADY);
        LCDOutDat(sy);
        LCDOutIns(LCD_INS_GRAM_ADY);
        LCDOutDat(sy); 
        y = sy - ey + 1;
    #else
        LCDOutIns(LCD_INS_START_ADY);
        LCDOutDat(sy);
        LCDOutIns(LCD_INS_END_ADY);
        LCDOutDat(ey);
        LCDOutIns(LCD_INS_GRAM_ADY);
        LCDOutDat(sy);
        y = ey - sy;    
    #endif 
        LCDOutIns(LCD_INS_RW_GRAM);
    					
    //    	fseek(f,BMPHeader.bfOffBits,SEEK_CUR);
    
        f_lseek(&fsrc,BMPHeader.bfOffBits);		
    		len=bmpWidth*bmpHeight;
        for (i=0;i<len;i++)           
        {
    // 		  br =fread(&buffer[0],1,3,f);
    //			if(!br)break;
    			res = f_read(&fsrc,buffer,3,&br);
    			if(br==3)RGB(buffer[2],buffer[1],buffer[0]);
    			else break;									  
            
    		}
    			
        LCDOutIns(LCD_INS_ENTRY_MOD);
        LCDOutDat(LCD_VAL_ENTRY_MOD);
    	  f_close(&fsrc);
    // 		fclose (f);		
        return res;      
        }
  4. #4
    2012/05/30
    کرمان
    793
    19

    پاسخ : دیکد فرمت های تصویری و نمایش روی LCD 3.2 با LPC1768

    ممنون بابت کدی که قرار دادید.
    کلی کار ما رو راحت کردید.
    در ادامه رو همین کد کار میکنیم تا انواع مختلف BMP رو ساپورت کنه.
    ممنون.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  5. #5
    2012/06/13
    کرج
    285
    6

    پاسخ : دیکد فرمت های تصویری و نمایش روی LCD 3.2 با LPC1768

    سلام
    دوستان من هنوز جریان این دیکد کردن نفهمیدم که چیه؟ فرق این کاری که دارید می کنید با زمانی که یک عکس با فرمت bitmap را با نرم افزارهایی به هگز تبدیل می کنیم وسپس روی lcd نشان می دهیم چیه؟
    داخل بعضی هدرها تابع هایی برای نشان دادن مستقیم عکس BMPاست فرقشان با این روش چیه؟ :eek:
    [size=10pt]I'm Very Question and I have more Question,Please Answer All of my Questions[/size]

    [size=12pt]

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    [/size]

    [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]
  6. #6
    2012/05/30
    کرمان
    793
    19

    پاسخ : دیکد فرمت های تصویری و نمایش روی LCD 3.2 با LPC1768

    نقل قول نوشته اصلی توسط very question
    سلام
    دوستان من هنوز جریان این دیکد کردن نفهمیدم که چیه؟ فرق این کاری که دارید می کنید با زمانی که یک عکس با فرمت bitmap را با نرم افزارهایی به هگز تبدیل می کنیم وسپس روی lcd نشان می دهیم چیه؟
    داخل بعضی هدرها تابع هایی برای نشان دادن مستقیم عکس BMPاست فرقشان با این روش چیه؟ :eek:
    سلام.
    خب فرقشو که خودت گفتی.دیگه نیازی نیست تصاویر رو با نرم افزار تبدیل کنی.خود میکرو این کار رو میکنه.
    وشما فقط تصاویر رو میریزی رو مموری و نشون میدی.

    اون توابعی هم که شما اشاره کردید فقط فرمتهای خاصی از BMP رو ساپورت میکنه.
    هدف اینه که انواع مختلف BMP رو دیکد کنیم.
    lcd دستم برسه کد رو امتحان میکنم و واستون میزارم.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا
  7. #7
    2007/12/13
    تهران
    732
    15

    پاسخ : ديکد فرمت هاي تصويري و نمايش روي LCD 3.2 با LPC1768

    نقل قول نوشته اصلی توسط lordofnaz

    من قبلا با فايل سيستم خود کيل کار مي کردم اما الان مدتي هست که به جاي اون از FatFs

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    ببخشيد يه کم خارج از بحثه ولي ميشه بگيد چرا از fs خود کيل استفاده نميکنيد ؟
    چون من با تابع format اين کتابخونه مشکل دارم . ميخام بدونم اگر اين سورس قويتره از اين استفاده کنم.
    از جمله ی رفتگان این راه دراز
    باز آمده ای کو که به ما گوید راز
    هان بر سر این دو راهه از روی نیاز
    چیزی نگذاری که نمی آیی باز
  8. #8
    2006/08/05
    48
    0

    پاسخ : ديکد فرمت هاي تصويري و نمايش روي LCD 3.2 با LPC1768

    نقل قول نوشته اصلی توسط mori64
    ببخشيد يه کم خارج از بحثه ولي ميشه بگيد چرا از fs خود کيل استفاده نميکنيد ؟
    چون من با تابع format اين کتابخونه مشکل دارم . ميخام بدونم اگر اين سورس قويتره از اين استفاده کنم.
    با سلام
    به چند دليل :
    1-شرکتهاي زيادي از جمله NXP از اون در مثالهاي خودشون استفاده کردن
    2- سورسش در دسترس و بازه
    3-بنده از کامپايلرهاي مختلف و با ميکرو هاي مختلفي استفاده ميکنم و استفاده اين کتابخونه باعث مي شه کارم يکسان و آسان بشه , مثلا همين نشون دادن عکس , من اين کد رو هم با AVR کار کردم هم انواع مختلف ARM از جمله LPC1768 , LPC2368 , LPC2378 .
    4- حتي کدويژن هم از اين کتابخانه استفاده مي کنه
    5-به نظر من توابع قوي تري داره و کارکردن با اونم راحتتره
    6-يادمه تويه يکي از ورژنهاي کيل کلا روش استفاده و توابع تغيير کردن و کلي بدبختي کشيدم تا دوباره کدم راه افتاد و کامپايل شد.
    البته اگه قراره از RL-ARM خود کيل استفاده بکنين مثل RTX , USB , CAN , NETWORK استفاده از FatFs رو توصيه نميکنم. چون فايل سيستم خودش با اونا راحت تر کار مي کنه.
  9. #9
    2006/08/05
    48
    0

    پاسخ : ديکد فرمت هاي تصويري و نمايش روي LCD 3.2 با LPC1768

    نقل قول نوشته اصلی توسط very question
    سلام
    دوستان من هنوز جريان اين ديکد کردن نفهميدم که چيه؟ فرق اين کاري که داريد مي کنيد با زماني که يک عکس با فرمت bitmap را با نرم افزارهايي به هگز تبديل مي کنيم وسپس روي lcd نشان مي دهيم چيه؟
    داخل بعضي هدرها تابع هايي براي نشان دادن مستقيم عکس BMPاست فرقشان با اين روش چيه؟ :eek:
    با سلام
    علاوه بر دلايلي که دوستان فرمومند دقت بفرماييد که ما فضاي حافظه کمي در دسترس داريم و حتي روي حافظه 512 کيلو بايتي نميشه بيش از دو سه تا عکس 320 در 240 رنگي قرار داد و اين موضوع در پروژه هاي بزرگ به خوبي خودشو نشون مي ده و ما رو دچار دردسر مي کنه.
  10. #10
    2012/06/13
    کرج
    285
    6

    پاسخ : ديکد فرمت هاي تصويري و نمايش روي LCD 3.2 با LPC1768

    نقل قول نوشته اصلی توسط lordofnaz
    با سلام
    علاوه بر دلايلي که دوستان فرمومند دقت بفرماييد که ما فضاي حافظه کمي در دسترس داريم و حتي روي حافظه 512 کيلو بايتي نميشه بيش از دو سه تا عکس 320 در 240 رنگي قرار داد و اين موضوع در پروژه هاي بزرگ به خوبي خودشو نشون مي ده و ما رو دچار دردسر مي کنه.
    اين طور که من از سخنان دوستان برداشت کرده بودم ما مي خواهيم با اين روش ديکد کردن مستقيم يک فايل BMP را نمايش دهيم و قبلش عکس را با نرم افزاري تبديل نکنيم ولي اين طور که شما مي گوييد با عث کاهش حجم هم مي شود ، مي شود يکمي بيشتر توضيح دهيد حجم عکس ها مگر ثابت نيست؟
    [size=10pt]I'm Very Question and I have more Question,Please Answer All of my Questions[/size]

    [size=12pt]

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    [/size]

    [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]
صفحه 1 از 14 1234567891011 ... آخرین
نمایش نتایج: از 1 به 10 از 132

موضوعات مشابه

  1. پاسخ: 5
    آخرين نوشته: 2016/03/14, 03:35
  2. مشکل نمایش در lcd برد lpc1768
    توسط shabnam8 در انجمن NXP
    پاسخ: 2
    آخرين نوشته: 2015/07/05, 15:21
  3. نمایش رشته فارسی بر روی lcd در lpc1768
    توسط برق1390 در انجمن NXP
    پاسخ: 0
    آخرين نوشته: 2015/05/26, 18:14
  4. پاسخ: 7
    آخرين نوشته: 2010/01/10, 15:42
  5. فرمت های مختلف فایل های صوتی و تصویری
    توسط babak1979 در انجمن كامپيوتر ، اينترنت و علوم مرتبط
    پاسخ: 1
    آخرين نوشته: 2009/05/02, 19:15

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •