اطلاعیه

Collapse
No announcement yet.

کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

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

    #46
    پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

    اسلام و تشکر از شما بابت این توابع و کتابخانه ها که در این زمینه انجام داده اید. :nerd:
    من این توابع را برای استفاده در میکروکنترلر xmega32a4 تغییر دادم ولی اصلا هیچ چیزی بر روی LCD نمایش داده نمی شود . این توابع را برای
    avrstudio و xmega تغییر دادم . در لینک پایین برنامه را قرار می دهم اگر ممکن است در خصوص این برنامه و اشکالات ان مرا راهنمایی کنید .
    برنامه به خوبی کامپایل می شود ولی کار نمی کند . در ضمن پایه BL واسه روشن کردن LED است من ان را مستقیما به vcc وصل کردم این که اشکالی ندارد؟ oo:
    با تشکر
    http://wdl.persiangig.com/pages/down...0lcd%20n96.rar

    دیدگاه


      #47
      پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

      نوشته اصلی توسط ARM-mohsen-AVR
      اسلام و تشکر از شما بابت این توابع و کتابخانه ها که در این زمینه انجام داده اید. :nerd:
      من این توابع را برای استفاده در میکروکنترلر xmega32a4 تغییر دادم ولی اصلا هیچ چیزی بر روی LCD نمایش داده نمی شود . این توابع را برای
      avrstudio و xmega تغییر دادم . در لینک پایین برنامه را قرار می دهم اگر ممکن است در خصوص این برنامه و اشکالات ان مرا راهنمایی کنید .
      برنامه به خوبی کامپایل می شود ولی کار نمی کند . در ضمن پایه BL واسه روشن کردن LED است من ان را مستقیما به vcc وصل کردم این که اشکالی ندارد؟ oo:
      با تشکر
      http://wdl.persiangig.com/pages/down...0lcd%20n96.rar
      با سلام،

      خواهش میکنم برادر، قابلی نداره

      استفاده از این توابع در AVRstudio نیازی به اعمال تغییرات نداره، فقط کافیه که شما WinAVR رو در سیستم خودتون نصب کنید و از این توابع در AVRstudio استفاده کنید.

      اتصال مستقیم پایه BL که همون BackLight هستش، به VCC هیچ موردی نداره.

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

      در ضمن، این توابع برای حرف "ح" یه مشکل کوچیک داشت که آقا مسعود گل گزارش کردند و برطرف شده، به همین دلیل بهتره که دایرکتوری FONT رو با این یکی عوض کنید که این مشکل درش برطرف شده ( جای حرف "ح" تغییر کرده )

      http://s2.picofile.com/file/7185403973/FONT_new.rar.html
      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

      Sh_Nourbakhsh@Yahoo.com

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

      دیدگاه


        #48
        پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

        با سلام

        برنامه ای که تو اولین پست گذاشته بودید فقط برای دیتا یک پورت را تعیین می کرد ولی ما نیاز به دو پورت برای مد 16 بیتی داریم .اگر می شود در برنامه بقیه قسمت ها را حذف کرده و فقط راه انداز برای winavr و مد 16 بیتی را بزارید .

        باتشکر

        دیدگاه


          #49
          پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

          نوشته اصلی توسط ARM-mohsen-AVR
          با سلام

          برنامه ای که تو اولین پست گذاشته بودید فقط برای دیتا یک پورت را تعیین می کرد ولی ما نیاز به دو پورت برای مد 16 بیتی داریم .اگر می شود در برنامه بقیه قسمت ها را حذف کرده و فقط راه انداز برای winavr و مد 16 بیتی را بزارید .

          باتشکر
          با سلام،

          برای استفاده از فایل های درایور LCD فقط در WinAVR هیچ چیز حذف نمیشه، فقط برخی از هدرهای ذکر شده در فایل app_config.h رو باید در ابتدای فایل ili9325config.h بجای این خط "include "app_config.h# درج کنید. که این رو هم من توصیه نمیکنم و بهتره به همین حال استفاده بشه، چونکه تفاوت خاصی نداره!

          و اما در مورد 8 و 16 بیتی، باید بگم که فایل هایی که شما در اختیار دارید و من دانلودشون کردم و دیدم، این امکان رو دارند، شاید درست استفاده نمیشن، برای این کار باید خط زیر رو در حالت صحیح تنظیم کنید، مثلا برای 16 بیتی به شکل زیر هست :
          [left][code]
          کد:
          #define TFT_8bit_INTERFACE		0				// 1 TFT-LCD in 8bit mode : 0 TFT-LCD in 16bit mode

          و پورتهای مورد نظر رو هم در خطوط زیر تنظیم کنید، البته به توضیحات مربوطه به D0 تا D7 و D10 تا D17 حتما توجه کرده و مقادیر رو به شکل درست ست کنید، به شکل زیر :

          کد:
          		//--- DATA ---
          		#define TFT_DB_DDR1					PORTD_DIR			//D10 to D17 of LCD
          		#define TFT_DB_PRT1					PORTD_OUT
          		#define TFT_DB_PIN1					PORTD_IN
          		
          		#if !TFT_8bit_INTERFACE
          			#define TFT_DB_DDR2				PORTC_DIR			//D0 to D7 of LCD
          			#define TFT_DB_PRT2				PORTC_OUT
          			#define TFT_DB_PIN2				PORTC_IN
          		#endif
          .
          .
          .
          ولی باز هم اگر به این موضوع اصرار دارید، بگید تا انجام بدم. البته LCD من شکسته و امکان تست ندارم :surprised:
          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

          Sh_Nourbakhsh@Yahoo.com

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

          دیدگاه


            #50
            پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

            با تشکر از دوستان گرامی و بهخصوص اقای نوربخش
            من تو xmega32a4 با این توابع جواب گرفتم و به خوبی کار می کند


            اضافه شده در تاریخ :
            اقای نوربخش در نمایش دادن اعداد از حافظه رم مشکل داره نمی تونه کاراکتر قبلی رو پاک کنه و بعد از مدتی با تغییر دیتا کاراکتر تبدیل به یک مستطیل می شه . من از adc استفاده می کنم مقادیر adc رو می خوام نشوون بدم مشکل پیش می یاد.
            مشکل دیگه هم در کنار بعضی از اعداد یک نقطه کوچک نشان میده .
            با تشکر

            دیدگاه


              #51
              پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

              نوشته اصلی توسط ARM-mohsen-AVR
              اقای نوربخش در نمایش دادن اعداد از حافظه رم مشکل داره نمی تونه کاراکتر قبلی رو پاک کنه و بعد از مدتی با تغییر دیتا کاراکتر تبدیل به یک مستطیل می شه . من از adc استفاده می کنم مقادیر adc رو می خوام نشوون بدم مشکل پیش می یاد.
              مشکل دیگه هم در کنار بعضی از اعداد یک نقطه کوچک نشان میده .
              با تشکر
              برادر، این مشکل رو که میگی، من تا حالا ندیدم، دستوراتی که استفاده کردی رو بزار ببینم که دقیقا چیه.
              و اون نقاط رو که میگی هم بعضا ارور های برنامه فونت ساز هستند، اگر برات مهمه، باید دستی اصلاحشون کنی ( توی هدر فایل فونت مورد استفاده )، برای اطمینان، از سایر فونت ها هم استفاده کن، اگر با اونها هم دقیقا در کاراکترهای مشابه این مشکل رو دیدی، بی زحمت یه عکس ازش بزار ببینیم چیه و اگر اینطوری نبود و این مورد رو در کاراکترهای متفاوتی میبینی، حتما مشکل از برنامه فونت ساز هست و همونطور که گفتم باید دستی اصلاح کنی ....
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

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

              دیدگاه


                #52
                پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                کد:
                [left]int main (void)
                {
                	
                	osc_init();
                	TFTInit();	
                	lcd_init();
                	adc_init();				
                  while(1)
                  {
                
                		for (i=0;i<100;i++)
                	  {
                		ADC_Ch_Conversion_Start(&ADCA.CH0);
                		while(!ADC_Ch_Conversion_Complete(&ADCA.CH0));
                		_delay_ms(10);
                		//ADC_result =  ADC_ResultCh_GetWord_Unsigned(&ADCA.CH0, offset);
                		ADC_result = ADC_ResultCh_GetWord(&ADCA.CH0);
                		ADC_result = ADC_result / 4095;
                		endadc+=ADC_result;
                	  }
                		endadc/=100;		 
                		SetLine(2,2);
                	  sprintf(lcd_buff,"TEMP: %4.3f  ",endadc);
                    Puts(lcd_buff);
                   	endadc=0;
                		
                  }
                 
                
                }
                void lcd_init(void)
                {
                	TFT_CLS(BLUE);	
                
                	LcdHorizontal(1); //(TFT_ORN_PORTRAIT);
                	//SetBkColor(YELLOW);
                	SetFgColor(RED);
                
                	//-------------------------------------
                	LcdFont(f9x14);
                
                	LcdFontXScale(1);
                	LcdFontYScale(2);
                	LcdFontSpace(2);
                	SetLetter(E_LETTER);
                }[/left]
                این هم از کد های برنامه ( تو کتابخانه قبلی که من ازش استفاده می کردم عین این برنامه به خوبی کار می کنه )
                باتشکر :sad:

                دیدگاه


                  #53
                  پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                  نوشته اصلی توسط ARM-mohsen-AVR
                  کد:
                  [left]int main (void)
                  {
                  	
                  	osc_init();
                  	TFTInit();	
                  	lcd_init();
                  	adc_init();				
                    while(1)
                    {
                  
                  		for (i=0;i<100;i++)
                  	  {
                  		ADC_Ch_Conversion_Start(&ADCA.CH0);
                  		while(!ADC_Ch_Conversion_Complete(&ADCA.CH0));
                  		_delay_ms(10);
                  		//ADC_result =  ADC_ResultCh_GetWord_Unsigned(&ADCA.CH0, offset);
                  		ADC_result = ADC_ResultCh_GetWord(&ADCA.CH0);
                  		ADC_result = ADC_result / 4095;
                  		endadc+=ADC_result;
                  	  }
                  		endadc/=100;		 
                  		SetLine(2,2);
                  	  sprintf(lcd_buff,"TEMP: %4.3f  ",endadc);
                      Puts(lcd_buff);
                     	endadc=0;
                  		
                    }
                   
                  
                  }
                  void lcd_init(void)
                  {
                  	TFT_CLS(BLUE);	
                  
                  	LcdHorizontal(1); //(TFT_ORN_PORTRAIT);
                  	//SetBkColor(YELLOW);
                  	SetFgColor(RED);
                  
                  	//-------------------------------------
                  	LcdFont(f9x14);
                  
                  	LcdFontXScale(1);
                  	LcdFontYScale(2);
                  	LcdFontSpace(2);
                  	SetLetter(E_LETTER);
                  }[/left]
                  این هم از کد های برنامه ( تو کتابخانه قبلی که من ازش استفاده می کردم عین این برنامه به خوبی کار می کنه )
                  باتشکر :sad:
                  اگر در برنامه قبلیت درست کار میکرده، راستش رو بخوای، ایده ای ندارم! ولی با توجه به استراتژی "مریض خر خورده" فکر میکنم که مشکل از Sprintf باشه، به یه روش دیگه بنویس ببین حل میشه یا نه!!! در ضمن اصل ماجرا، یعنی تعریف lcd_buff اصلا مشخص نیست که اخوی
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

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

                  دیدگاه


                    #54
                    پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                    دوست عزیز این از char lcd_buff[50]; و تابع sprintf هم درست کار می کنه
                    دوست عزی مشکل اینه که وقتی یه کاراکتر می نویسه مثل عدد 3 و قتی کاراکتر تغییر می کنه به عدد دیگه مثلا2 این عدد یعنی 2 می افته روی عدد 3 و به همین ترتیب تا اخر ...
                    باید طوری باشه که وقتی می خواد کاراکتر عوض بشه قبلیه رو پاک کنه
                    باتشکر

                    دیدگاه


                      #55
                      پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                      نوشته اصلی توسط ARM-mohsen-AVR
                      دوست عزیز این از char lcd_buff[50]; و تابع sprintf هم درست کار می کنه
                      دوست عزی مشکل اینه که وقتی یه کاراکتر می نویسه مثل عدد 3 و قتی کاراکتر تغییر می کنه به عدد دیگه مثلا2 این عدد یعنی 2 می افته روی عدد 3 و به همین ترتیب تا اخر ...
                      باید طوری باشه که وقتی می خواد کاراکتر عوض بشه قبلیه رو پاک کنه
                      باتشکر
                      گرفتم داداشششش، چرا میزنی؟! :mrgreen:

                      مشکل از خوندن رم نیست، چرا نکته انحرافی مطرح میکنی؟! شما باید یه نگاهی به (LcdNonTransparence(n در فایل Font.h بندازی، و اگر با ست کردن این هم حل نشد، باید قبلا چند تا Space ناقابل چاپ کنی تا اون قسمت صفحه پاک بشه!
                      ( راستش روتین برنامه رو دیگه یادم نیست چطوریا بوده! خودت به بررسی جاتی بکن، برنامه از این نظر مشکل نداره! )
                      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                      Sh_Nourbakhsh@Yahoo.com

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

                      دیدگاه


                        #56
                        پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                        آقا محسن گل، مشکل حل شد؟

                        راستی، خوب که فکر میکنم، کم - کم داره یه چیزایی یادم میاد :surprised: در روتین برنامه برای نمایش بهتر و زیباتر اعداد، در زمان چاپ اونها fixed width انجام میشه و این هستش که اون ماجرا رو پیش میاره و برای برطرف کردنش، باید در زمان چاپ اعداد بر روی هم، قبلش اون قسمت صفحه رو با یه باکس به رنگ زمینه و یا چند تا جای خالی، پاک کرد.

                        رفع اساسی مشکل باید در زمان درست کردن فونت، مد نظر باشه! یعنی اینکه در زمان درست کردن فونت، باید عرض کاراکتر همه اعداد رو به یک اندازه گرفت! اگر به اعداد انگلیسی و فارسی فونت های فعلی دقت کنید، عرض اونها با هم فرق داره که موجب این قضیه است ( البته این موضوع توصیه نمیشه، چون به نظر من، شکل نمایش اعداد رو زشت میکنه ).....
                        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                        Sh_Nourbakhsh@Yahoo.com

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

                        دیدگاه


                          #57
                          پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                          اره داداش الان اومدم با 1 کردن (Lcd Non Transparence(n دیگه این مشکل پیش نمی یاد ولی یه مشکل دیگه اینه که وقتی صفحه رو با یه رنگ دیگه به غیز از سفید پاک کنیم هنگام نمایش اعداد پس زمینه هر کارکاکتر سفید میشه و این خراب میکنه همه چیزو .یعنی هم قرمز و هم آبی و هم سفید (آبی رنگ کل صفحه)

                          دیدگاه


                            #58
                            پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                            نوشته اصلی توسط ARM-mohsen-AVR
                            اره داداش الان اومدم با 1 کردن (Lcd Non Transparence(n دیگه این مشکل پیش نمی یاد ولی یه مشکل دیگه اینه که وقتی صفحه رو با یه رنگ دیگه به غیز از سفید پاک کنیم هنگام نمایش اعداد پس زمینه هر کارکاکتر سفید میشه و این خراب میکنه همه چیزو .یعنی هم قرمز و هم آبی و هم سفید (آبی رنگ کل صفحه)
                            خوبه، ایول

                            اگه موضوع رو درست متوجه شده باشم، باید با GetBkColor و SetBkColor جریان رو حل کنی اخوی.....
                            در کل، فکر نکنم اشکال خاصی در برنامه باشه، فقط باید قلق استفاده ازش بیاد دستت، قبلا دوستان زحمت کشیدن و مشکلات رو گزارش کردن و من هم سعی کردم در حد توان حلشون کنم، ولی اگر شما هم مشکلی دیدی، من در خدمتتم و اگر احیانا خودت برطرفش کردی، یادت نره که به ماهم بدیش :mrgreen:

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

                            Sh_Nourbakhsh@Yahoo.com

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

                            دیدگاه


                              #59
                              پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                              داداش عاشقتم
                              با همون GetBkColor و SetBkColor حلش کردم . واقعا ازت ممنون هستم

                              دیدگاه


                                #60
                                پاسخ : کاملترین تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی

                                نوشته اصلی توسط aivhl
                                با سلام،
                                لطفا جهت آموزش نحوه استفاده به لینک زیر مراجعه بفرمائید.

                                http://www.eca.ir/forum2/index.php?topic=55585.0
                                با سلام
                                تشکر از فایل ها و توابعی که گذاشتید. من LCD N96 رو با یک سری تابع و هدرفایل های دیگه به صورت انگلیسی راه انداختم اما با اینکه خیلی تلاش کردم نتونستم از توابع شما جواب بگیرم. گفته بودین که تو فایل app_config.h باید نوع کامپایلر رو انتخاب بشه. من با codevision کار میکنم اما متوجه نشدم دقیقا چه تغییری باید اعمال کنم. اگه ممکنه راهنماییم کنید.
                                یه مختصری هم در مورد آرایش پایه هایی که به LCD وصل میشن و فایل ili9325config.h توضیح بدید لطفاً. من مدارم رو طبق ili9325config.h بستم و برنامه رو هم با codevision کامپایل کردم و کد هگز رو ریختم رو میکرو اما صفحه سفید میمونه!
                                ممنون میشم راهنماییم کنید.

                                اضافه شده در تاریخ :
                                نوشته اصلی توسط aivhl
                                با سلام، :bye

                                ضمن تشکر فراوان از کلیه دوستانی که توابع رو تست و مشکلات رو گزارش کردند، آخرین ورژن این توابع رو براتون ارسال میکنم.
                                لازم بذکره که تغییرات کوچکی توی توابع فونت داده شده و عمدتا، یک سری تغییرات در توابع مربوط به LCD اعمال شده. ( میتونید از توابع LCD ارائه شده استفاده نکنید و توابع LCD خودتون رو جایگزین کنید، هر نوع LCD که باشه مهم نیست.... )
                                امکان استفاده از این توابع در WinAVR و CodeVision و Keil وجود داره ( خودم توی تمام این محیط ها تست کردم ) برای انتخاب کامپایلر، به فایل app_config.h توجه کنید.
                                این چیزی که فعلا اینجا قرار دادم، برای WinAVR و CodeVision تیون شده، برای استفاده در Keil ، توابع تیون شده رو توی انجمن مربوطه قرار خواهم داد. ( چون توابع یکم شلوغ شدند، موارد مربوط به Keil رو حذف کردم! )

                                http://s2.picofile.com/file/7147898595/PEfont_dist3.rar.html

                                بازم تشکر از همکاری و ابراز لطفتون و مرسی ....
                                با سلام
                                تشکر از فایل ها و توابعی که گذاشتید. من LCD N96 رو با یک سری تابع و هدرفایل های دیگه به صورت انگلیسی راه انداختم اما با اینکه خیلی تلاش کردم نتونستم از توابع شما جواب بگیرم. گفته بودین که تو فایل app_config.h باید نوع کامپایلر رو انتخاب بشه. من با codevision کار میکنم اما متوجه نشدم دقیقا چه تغییری باید اعمال کنم. اگه ممکنه راهنماییم کنید.
                                یه مختصری هم در مورد آرایش پایه هایی که به LCD وصل میشن و فایل ili9325config.h توضیح بدید لطفاً. من مدارم رو طبق ili9325config.h بستم و برنامه رو هم با codevision کامپایل کردم و کد هگز رو ریختم رو میکرو اما صفحه سفید میمونه!
                                ممنون میشم راهنماییم کنید.

                                اضافه شده در تاریخ :
                                مجدداً سلام
                                خودم تونستم راهش بندازم :wow: :applause:. یه چیزایی فارسی اومد رو صفحه. :job:
                                اما خیلی ناجوره! :NO: همه چیز جابجا هستش oo:
                                مشکل از کجاست؟

                                دیدگاه

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