اطلاعیه

Collapse
No announcement yet.

آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

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

    #31
    پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

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

    برنامه شما رو دیدم، امکان تست برنامه شما برای من وجود نداره، چونکه شما کل فایل ها رو بردی توی دایرکتوری های کدویژن، پس من هم باید کدویژن شما رو داشته باشم تا بتونم تستش کنم :surprised:

    توجه داشته باشید که هگزی که با اون توابع هست با کریستال 16 مگ و اگر اشتباه نکنم، در حالت memory mapped هست.
    حداقل شماتیک و یا آرایش سخت افزاریت و مشخصات میکرو و کریستال رو بده، تا من بر اساس اون یه هگز بهت بدم، تا از سخت افزارت مطمئن بشی.....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

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

    دیدگاه


      #32
      پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

      با سلام،

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

      http://s1.picofile.com/file/7298788709/M128_KS108.rar.html

      اینم شماتیکش، تست کن، خبرش رو بده....


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

      Sh_Nourbakhsh@Yahoo.com

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

      دیدگاه


        #33
        پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

        خیلی ممنون از لطفتان و وقتی که گذاشتید
        شماتیکم دقیقا" به همین صورت است .فایل هگز شما هم جواب نداد . با این احتساب مشکل دقیقا" از سخت افزار است .انشا الله برای فردا pcb می زنم که مشخص شود ایراد از برد برد است یا اتصالات یا ال سی دی و یا میکرو.البته با دو تا ال سی دی هم تست کردم.
        مولای من
        نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

        یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

        دیدگاه


          #34
          پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

          نوشته اصلی توسط محمد صادق ساعی
          خیلی ممنون از لطفتان و وقتی که گذاشتید
          شماتیکم دقیقا" به همین صورت است .فایل هگز شما هم جواب نداد . با این احتساب مشکل دقیقا" از سخت افزار است .انشا الله برای فردا pcb می زنم که مشخص شود ایراد از برد برد است یا اتصالات یا ال سی دی و یا میکرو.البته با دو تا ال سی دی هم تست کردم.
          برد بورد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ول کنید این برد بورد لعنتی رو !!! ~x( :angry: :-((

          در ضمن، توجه داشته باشید که آرایش پایه های LCD در LCD واقعی با پروتئوس کمی متفاوته .....
          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

          Sh_Nourbakhsh@Yahoo.com

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

          دیدگاه


            #35
            پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

            سلام ممنون اما بنده برد برد را از پروتیوس بیشتر قبول دارم چون عملی کار کردن به خصوص زمانیکه مدار جواب نمی دهد آموزه های گاها" بسیار ارزنده ای برای ما دارند.
            آرایش پایه ها را هم با توجه به دیتاشیت بسته ام و صحیح است .حالا pcb زده ام کانکتورها را که بسازم تست می کنم .
            سپاسگذار از توجه شما

            اضافه شده در تاریخ :
            سلام
            میکروکنترلرم مشکل داشت که آنرا با Mega16L عوض کردم و در هدر فایل app_config هم #include <mega128.h ، رابه Mega16.h تغییر دادم. و در نهایت مشکلی دیگر نیست که فیلم آنرا هم قرار می دهم :
            http://s1.picofile.com/file/7305278595/GLCD_By_RAD_ELE.rar.html
            با نرم افزار VLC Media Player قابل مشاهده است.
            لازم به ذکر است که این فیلم فقط شامل تابع test01 از سه تابع است.
            و در نهایت بسیار ممنون از راهنماییتان.

            اضافه شده در تاریخ :
            سلام به اخوی گرامی جناب راد
            دو تا سوال از خدمتتان داشتم :
            1) عکس پنگوءن را که فرموده بود هر عکسی به دلخواه می توان جایگزین آن نمود . حال اگر بخواهیم چند عکس از این دست ، را داشته باشیم چطور؟ آیا بایستی آرایه ی مورد نظرمان را با نام دلخواه زیر همان آرایه ی Pinguino[] کپی کنیم و یا اینکه حتما" بایستی یک هدر فایل برای عکسمان بسازیم ؟
            3)برای جایگزینی تصویر تست با نام آرایه ی test[]، نیز همان سوال قبلی را دارم .
            با سپاس فراوان
            مولای من
            نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

            یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

            دیدگاه


              #36
              پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

              نوشته اصلی توسط محمد صادق ساعی
              سلام به اخوی گرامی جناب راد
              دو تا سوال از خدمتتان داشتم :
              1) عکس پنگوءن را که فرموده بود هر عکسی به دلخواه می توان جایگزین آن نمود . حال اگر بخواهیم چند عکس از این دست ، را داشته باشیم چطور؟ آیا بایستی آرایه ی مورد نظرمان را با نام دلخواه زیر همان آرایه ی Pinguino[] کپی کنیم و یا اینکه حتما" بایستی یک هدر فایل برای عکسمان بسازیم ؟
              3)برای جایگزینی تصویر تست با نام آرایه ی test[]، نیز همان سوال قبلی را دارم .
              با سپاس فراوان
              با سلام،

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

              توجه داشته باشید که تعداد عکس ها اصلا محدودیتی نداره، بلکه این فضای در دسترس و اشغال شده حافظه میکرو هستش که مهمه.
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

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

              دیدگاه


                #37
                پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                سلام و عرض ادب
                -یک سوال داشتم اینکه اگر بخواهم در یک page یکسری جمله بنویسم که وسط جمله ها یک و یا دو لغت انگلیسی هم باشد به چه نحو باید از توابع استفاده نمایم؟
                -حرف کاف (ک) چسبیده در فونتها هم مشکل دارد.
                در این فایل بنده همه توابع و پارامترهای کتابخانه ها را پشت سر هم نوشته ام :
                http://s1.picofile.com/file/7310094408/pGLCD_Functions.pdf.html
                سپاسگذار
                مولای من
                نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                دیدگاه


                  #38
                  پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                  نوشته اصلی توسط محمد صادق ساعی
                  سلام و عرض ادب
                  -یک سوال داشتم اینکه اگر بخواهم در یک page یکسری جمله بنویسم که وسط جمله ها یک و یا دو لغت انگلیسی هم باشد به چه نحو باید از توابع استفاده نمایم؟
                  -حرف کاف (ک) چسبیده در فونتها هم مشکل دارد.
                  در این فایل بنده همه توابع و پارامترهای کتابخانه ها را پشت سر هم نوشته ام :
                  http://s1.picofile.com/file/7310094408/pGLCD_Functions.pdf.html
                  سپاسگذار
                  با سلام،

                  دستور SetLetter برای تنظیم روتین های درج نوشته در حالات صحیح چپ چین و راست چین و این چیزاست و تقریبا کار Alt-Shift ویندوز رو انجام میده و SetLine هم محل شروع درج نوشته رو مشخص میکنه، حالا با تنظیمات صحیح از طریق اینها، شما میتونید فارسی و یا انگلیسی رو به هر ترکیب مورد دلخواه در صفحه چاپ کنید! و اگر میخواید وسط یه جمله فارسی یه کلمه انگلیسی رو درج کنید، مثل این "واژه Exit یعنی" و نمیخواید درگیر تنظیمات و اینا بشید، ساده ترین راه اینه که اون کلمه انگلیسی رو، وسط جمله فارسی، از آخر به اول بنویسید! اینطوری : "واژه tixE یعنی"

                  و اما در مورد کاراکتر "ک" باید بگم، همونطور که قبلاها هم گفتم و شما هم میدونید، این کاراکتر در صفحه کلیدهای ویندوز و با Layout های مختلف صفحه کلید ویندوز، دو تا کد داره! شما باید از "ک" درست استفاده کنید. ( توی بعضی از ویندوزها درسته و در برخی از ویندوزها باید با استفاده از برنامه Character Map ویندوز، "ک" درست رو استفاده کنید ) نمونه درستش در کدهای نمونه ارائه شده، در جمله "راد الکترونیک" هستش .....
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

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

                  دیدگاه


                    #39
                    پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                    سلام و عرض ادب خالصانه
                    بنده همانطور که در جریان هستید از کتابخانه ی شما استفاده نمودم و بسیار هم لذت بردم و عالی است. فقط نکته ای که بنده در آن دیدم این بود که به نظر شخصی بنده
                    کمی حروف بزرگ هستند و فضای زیادی از صفحه را اشغال می کنند.
                    بنده یک کتابخانه ی فونت یافتم به اندازه ی 9 در 9 پیکسل که به نظرم مناسب آمد . آنرا بصورت یک هدر فایل با مشخصات کامل هدر فایل های دو نوع فونت شما در آوردم و طول و عرض آنرا نیز تغییر دادم.
                    حال زمانیکه بنده آنرا include می نمایم برنامه پس از load شدن روی میکروکنترلر (پروگرام) هیچ کدام از حروف چه فارسی و چه انگلیسی را نمایش نمی دهد.
                    حال سوال بنده این است که به چه نحوی می بایست از آن استفاده نمایم؟
                    http://s2.picofile.com/file/7313158488/me8x8.h.html
                    این هم پروژه ی خودم :

                    کد:
                    #include <app_config.h>
                    #include <ks0108.h>
                    #include <Graphic.h>
                    #include <Font.h>
                    //#include <f9x14.h>
                    //#include <AF12x16.h>
                    #include <me8x8.h>
                    #include <Pinguino.h>
                    #include <Ptest.h>
                    #include <ks0108config.h>
                    ////////////////////////////////////////////// 
                    char Ctemp[48];
                    ///////////////////////////////////////////
                    void main(void)
                             {char i=0, j=0;
                             KS108_Init(NON_INVERTED);
                             
                             KS108_CLSx();
                    	     //LcdFont(f9x14);
                             SetBkColor(WHITE);
                    	     SetFgColor(BLACK);
                             SetLetter(E_LETTER);
                             LcdFontSpace(2);
                             LcdFontXScale(1);
                             LcdFontYScale(1); 
                    
                                  
                             for(i=0,j=0; i<GetMaxX(); i+=4,j+=3)
                                    {
                                    delay_ms(50);
                                    RectangleFill(5, 25, GetMaxX()-5, 25+20, WHITE);
                                    
                                    sprintf(Ctemp,"Please Wait : %d",7+j);           
                                    TextBox(0, 30, GetMaxX()-5, 30+20, Ctemp, ALINE_CENTER);         
                    		
                    		        RectangleFill(i, 53, i+6, 63, BLACK);
                    	            }
                                    
                             KS108_CLSx();
                             //LcdFont(AF12x16);
                             LcdFontSpace(1);
                             LcdFontXScale(1);
                             LcdFontYScale(1);
                             SetLetter(P_LETTER); 
                    		 delay_ms(100);
                             sprintf(Ctemp, " محمد صادق ساعی");
                    	     DrawStringAt(1, 1, Ctemp, BLACK, WHITE);
                             sprintf(Ctemp,"اصفهانی");
                             DrawStringAt(2,3,Ctemp,BLACK,WHITE);
                             delay_ms(2000);
                             
                             KS108_CLSx();
                             SetLine(0,1);
                             sprintf(Ctemp, "ســـلام !!!");
                    	     TextBox(5, 10, GetMaxX()-5, 10+20, Ctemp, ALINE_CENTER);
                             delay_ms(1000);        
                                     
                             while(1)
                                  {
                                  KS108_CLSx();
                                  sprintf(Ctemp, "سیگنال ژنراتور");
                    	          TextBox (0, 0, GetMaxX(), LcdFontHeight(), Ctemp, ALINE_RIGHT | BORDER_RECT | BORDER_FILL | bvl(4));
                                  
                                  sprintf(Ctemp, "منبع تغذیه");
                    	          TextBox (0,20,GetMaxX(), 20+LcdFontHeight(), Ctemp, ALINE_CENTER|  BORDER_RECT | BORDER_FILL | bvl(0));
                                               
                                  sprintf(Ctemp,"CLR متر");
                                  TextBox(0,40,GetMaxX(),40+LcdFontHeight(),Ctemp,ALINE_LEFT | BORDER_RECT | BORDER_FILL |bvl(4));
                                  delay_ms(2000);
                    {
                    {
                    مولای من
                    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                    دیدگاه


                      #40
                      پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                      با سلام،

                      در لینک زیر تعدادی فونت فارسی با سایز کوچک که با برنامه فونت ادیتور H. Reddmann درست شدن وجود داره. البته باید بگم که من خودم خیلی خوشم نیومده، ولی در صورتی که بخواید توی LCD های با رزولوشن کم استفاده کنید، به کار میاد! سورس فونت ها هم جهت ادیت در دایرکتوری fnt قرار دارند :

                      http://s1.picofile.com/file/7313208381/fonts.rar.html

                      فونت های داخل دایرکتوری ( سایزهاشون هم که معلومه دیگه :biggrin: ) :

                      f5x7.h English font
                      f9x14.h English font
                      f10x20.h English font
                      AF9x10.h English & Persian font
                      AF9x11.h English & Persian font
                      AF12x16.h English & Persian font

                      کلا فکر میکنم که ایجاد فونت با سایز کوچک تر از 12x16 خیلی جالب نمیشه!!!

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

                      Sh_Nourbakhsh@Yahoo.com

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

                      دیدگاه


                        #41
                        پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                        با سلام
                        جناب نوربخش عزیز من برنامه شما رو که برای lcd مدل ts12864 هست رو امدم برای at90usb162 (با winavr) کامپایل کردم ، عمل make all بدون هیچ گونه خطایی انجام میشه اما مشکل جاییه که میخوام فایل هگز رو پروگرام کنم ( برای پروگرام کردن at90usb162 از نرم افزار flip استفاده میکنم ) طوریکه موقع لود کردن فایل هگز برای پروگرام کردن با مشکل زیر مواجه میشم :



                        ببخشید یه سوال دیگه من توجه نشدم که این قسمت دقیقا یعنی چی ؟(اگه برای بک لایت هستند نمیشه همون آند و کاتد (پایه های 19 و 20 lcd )رو مستقیم به vcc , gnd متصل کرد)

                        کد:
                        #define KS108_BKL_DDR												DDRD				// KS0108 Backlight
                        	#define KS108_BKL_PRT												PORTD
                        	#define KS108_BKL_BIT												3


                        ممنون از توجهتون

                        دیدگاه


                          #42
                          پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                          با سلام،

                          آقا مجتبی عزیز، اون کدها که بهشون اشاره کردید، همونطور که خودتون متوجه شدید، مربوط به BackLight میشه و اجباری برای استفاده از اونها وجود نداره، فقط زمانی لازمه که شما بخواید با میکرو نور پس زمینه LCD رو خاموش و روشن کنید ( برای مصرف انرژی و یا هر دلیل دیگه! )

                          اما در مورد ارور اشاره شده، واقعا نظر خاصی ندارم و تنها نکته ای که به ذهنم میرسه، تنظیمات صحیح مربوط به makefile در فایل Global_make و هدر فایل های صحیح در app_config.h هستش که باید متناسب با میکرو تنظیم بشن ( تنظیمات جاری برای میکروی مگا 128 هستش ) و یه تنظیم هم در فایل ks0108config.h هستش که مربوط به memory-mapped interfaced هستش که با توجه به میکرو و سخت افزار شما باید در حالت صحیح باشه .....

                          و زمانی که make all میکنید، به اشاراتی که در مورد اندازه کد تولید شده هست توجه کنید. نباید از نظر حافظه برنامه و SRAM از میکروی شما تجاوز کنه و یا لب مرز باشه ....
                          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                          Sh_Nourbakhsh@Yahoo.com

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

                          دیدگاه


                            #43
                            پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                            ممنون از پاسختون
                            راستش زیاد با winavr کار نکردم بیشتر با avrstudio کار میکنم و چون هر کاری کردم نتونستم با AVRSTUDIO 5 برنامه رو کامپایل کنم دیگه رفتم سراغ همون WINAVR ، در مورد makefile ، بله میکرو رو at90usb162 و فرکانس اوسیلاتور رو هم 8 مگ و پیکره بندی lcd رو روی حالت پورت گزاشتم و بعد make all کردم الان یه سوال مگه خود winavr اگه حجم برنامه از مقدار حافظه فلش میکرو مقصد کمتر باشه موقع کامپایل ارور نمیده ؟

                            و یه مورد دیگه برنامه تون رو که با کدویژن کامپایل میکنم عمل کامپایل انجام میشه البته توی حالت اوپتیمایز حجم ، یه چیزی حدود 92.7 دزصد از حافظه فلش رو اشغال میکنه و فضای تخمینی مورد نیاز برای دیتا استک توسط کدویژن 136 بایت هست که من اون رو روی 137 گزاشتم (الان یه سوال این موردی رو که در مورد SRAM فرموید من از کجا میتونم استخاج کنم آیا WINAVR هم فایل MAP رو تولید مکنه؟ )و البته 16 به همراه 16 وارنینگ که فرموده بودید مم نیستند به هرحال بازم موقع لود کردن فایل هگز تولیدی کدویژن با فلیپ دقیا همون مشکله بالا پیش میاد یه چیزی که به نظرم خودم میاد اینه که چون دارم از بوت لودر هم استفاده میکتم فضای در دسترس فلشم کم شده به خاطر همین امدم (تو کدویژن) قسمت TEST3 رو حذف کردم (فضای اشغالشده رسید به 36 درصد) این بار تونستم فایل هگز رو لود کنم و همینطور پروگرام ولی بعد از کلیک بر روی دکمه استارت هیچ چیزی روی LCD به نمایش در نیومد ، از بابت اتصالات تقریبا مطمئنم چون همین با همین اتصالات و سه تا کتابخونه LCD گرافیکی که دو تاش مروبط به کتاخونه های WINAVR هست و یکیش هم مربوط به همین کتاخونه ورژن اخیر کدویژن LCD رو راهاندازی کردم مثلا نحوه اتصالات تو کتابخونه کدویژن اخیر به این شکل هست :



                            و این در کتابخونه شماره یک WINAVR :

                            کد:
                            //#define GLCD_MEMORY_INTERFACE
                            #define GLCD_PORT_INTERFACE
                            
                            // GLCD_PORT_INTERFACE specifics
                            #ifdef GLCD_PORT_INTERFACE
                            	// make sure these parameters are not already defined elsewhere
                            	#ifndef GLCD_CTRL_PORT
                            		#define GLCD_CTRL_PORT	PORTD	// PORT for LCD control signals
                            		#define GLCD_CTRL_DDR	DDRD	// DDR register of LCD_CTRL_PORT
                            		#define GLCD_CTRL_RS	PD0		// pin for LCD Register Select
                            		#define GLCD_CTRL_RW	PD1		// pin for LCD Read/Write
                            		#define GLCD_CTRL_E		PD2		// pin for LCD Enable
                            		#define GLCD_CTRL_CS0	PD3		// pin for LCD Controller 0 Chip Select
                            		#define GLCD_CTRL_CS1	PD4		// pin for LCD Controller 1 Chip Select(*)
                            		#define GLCD_CTRL_CS2	PD6		// pin for LCD Controller 2 Chip Select(*)
                            		#define GLCD_CTRL_CS3	PD7		// pin for LCD Controller 3 Chip Select(*)
                            		#define GLCD_CTRL_RESET	PD5		// pin for LCD Reset
                            		// (*) NOTE: additonal controller chip selects are optional and 
                            		// will be automatically used per each step in 64 pixels of display size
                            		// Example: Display with 128 hozizontal pixels uses 2 controllers
                            	#endif
                            	#ifndef GLCD_DATA_PORT
                            		#define GLCD_DATA_PORT	PORTB	// PORT for LCD data signals
                            		#define GLCD_DATA_DDR	DDRB	// DDR register of LCD_DATA_PORT
                            		#define GLCD_DATA_PIN	PINB	// PIN register of LCD_DATA_PORT
                            	#endif
                            #endif


                            و این در کتابخونه شماره دو WINAVR :

                            کد:
                            // Ports
                            #define LCD_CMD_PORT		PORTD		// Command Output Register
                            #define LCD_CMD_DIR			DDRD		// Data Direction Register for Command Port
                            
                            #define LCD_DATA_IN			PINB		// Data Input Register
                            #define LCD_DATA_OUT		PORTB		// Data Output Register
                            #define LCD_DATA_DIR		DDRB		// Data Direction Register for Data Port
                            
                            // Command Port Bits
                            #define D_I					0x00		// D/I Bit Number
                            #define R_W					0x01		// R/W Bit Number
                            #define EN					0x02		// EN Bit Number
                            #define CSEL1				0x03		// CS1 Bit Number
                            #define CSEL2				0x04		// CS2 Bit Number


                            گه البته تو این یکی RESET رو مستقیم به VCC متصل میکنم

                            و اما این هم پیکره بندی که تو کتابخونه شما انجام دادم :


                            کد:
                            #define KS108_ORN_PORTRAIT									0						// 1 Portrait display 			: 0 Landscape display
                            	#define KS108_PORT_INTERFACE								1						// 1 GLCD port interfaced 	: 0 GLCD memory-mapped interfaced
                            	
                            	               	
                            	// Pins.....
                            	#if KS108_PORT_INTERFACE
                            		//--- DATA ---
                            		#define KS108_DB_DDR											DDRB				// KS0108 DATA port
                            		#define KS108_DB_PRT											PORTB
                            		#define KS108_DB_PIN											PINB
                            
                            		//--- CTRL ---
                            		#define KS108_RS_DDR											DDRD				// KS0108 RS (D/I)
                            		#define KS108_RS_PRT											PORTD
                            		#define KS108_RS_BIT											0
                            
                            		#define KS108_RW_DDR											DDRD				// KS0108 R/W
                            		#define KS108_RW_PRT											PORTD
                            		#define KS108_RW_BIT											1
                            
                            		#define KS108_EN_DDR											DDRD				// KS0108 EN
                            		#define KS108_EN_PRT											PORTD
                            		#define KS108_EN_BIT											2
                            
                            		#define KS108_CS1_DDR											DDRD				// KS0108 CSEL1
                            		#define KS108_CS1_PRT											PORTD
                            		#define KS108_CS1_BIT											3
                            
                            		#define KS108_CS2_DDR											DDRD				// KS0108 CSEL2
                            		#define KS108_CS2_PRT											PORTD
                            		#define KS108_CS2_BIT											4
                            
                            
                            	#elif	defined(XMemory_OK)
                            	
                            		// absolute address of LCD Controller #0 CTRL and DATA registers (Write)
                            		#define W_CONTROL0_CTRL_ADDR							0x8000
                            		#define W_CONTROL0_DATA_ADDR							0x8200
                            						//	 AAAA CCRR
                            						//	 DDDD SSSW
                            						//  1000 0000 | 0000 0000 === 	0x8000
                            						//  1000 0010 | 0000 0000 === 	0x8200
                            		// absolute address of LCD Controller #0 CTRL and DATA registers (Read)
                            		#define R_CONTROL0_CTRL_ADDR							0x8100
                            		#define R_CONTROL0_DATA_ADDR							0x8300
                            						//	 AAAA CCRR
                            						//	 DDDD SSSW
                            						//  1000 0001 | 0000 0000 === 	0x8100
                            						//  1000 0011 | 0000 0000 === 	0x8300
                            	
                            		// offset of other controllers with respect to controller0
                            		#define CONTROL_ADDR_OFFSET								0x0400
                            						//	 AAAA CCRR
                            						//	 DDDD SSSW
                            						//  0000 0100 | 0000 0000 === 	0x0400
                            	#else
                            		#error "external data memory interface not available for this device, use GLCD port interface mode"
                            	#endif
                            		
                            
                            	#define KS108_RST_DDR												DDRD				// KS0108 Reset
                            	#define KS108_RST_PRT												PORTD
                            	#define KS108_RST_BIT												5
                            	
                            	#define KS108_BKL_DDR												DDRD				// KS0108 Backlight
                            	#define KS108_BKL_PRT												PORTD
                            	#define KS108_BKL_BIT												6

                            دیدگاه


                              #44
                              پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

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

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

                              دیدگاه


                                #45
                                پاسخ : آموزش استفاده از توابع فونت فارسی، عربی و انگلیسی برای LCD های گرافیکی

                                با سلام این پستی که زدم فقط بخاطر تشکر از اساتید گرامی مثل aivhl و آقا مجتبی عزیز که هم خیلی چیزا ازشون یاد گرفتم هم برای سایت خیلی مفید بودن ممنون از شما و همه اساتید

                                دیدگاه

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