اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام،

    توصیه اول، برای دریافت آخرین نسخه از توابع فونت، به اینجا برید و پروژه اش رو دانلود و پوشه فونت اونجا رو بردارید!
    http://www.eca.ir/forum2/index.php?topic=81916.msg498792#msg498792

    توصیه دوم، اگر از LCD چینی N96 داری استفاده میکنی، آخرین درایوری که من براش نوشتم اینه ( هر چی گشتم، توی سایت، جایی نبود! نمیدونم کجا ازش استفاده کردم! آخه خیلی وقته که LCD من شکسته و من هم یکی دیگه برای خودم نخریدم و خیلی وقت هم هست که رووش کار نکردم!!! )
    http://s2.picofile.com/file/7987113438/TFT6.rar.html

    و اما بعد،
    شما از چه کامپایلری داری استفاده میکنی و نمایشگرت هم چیه؟
    pgm_read_byte برای خوندن مقادیر byte از حافظه flash میکرو هستش، باید بدونم که کامپایلرت چیه تا بگم معادلش چی میشه ....

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

    buf_store و buf_clear و buf_read هم در آخرین نسخه وجود ندارن و در نسخ اولیه برای مدیریت بافر متن بکار میرفتن ....
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

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

    دیدگاه


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

      نوشته اصلی توسط aivhl
      با سلام،

      توصیه اول، برای دریافت آخرین نسخه از توابع فونت، به اینجا برید و پروژه اش رو دانلود و پوشه فونت اونجا رو بردارید!
      http://www.eca.ir/forum2/index.php?topic=81916.msg498792#msg498792

      توصیه دوم، اگر از LCD چینی N96 داری استفاده میکنی، آخرین درایوری که من براش نوشتم اینه ( هر چی گشتم، توی سایت، جایی نبود! نمیدونم کجا ازش استفاده کردم! آخه خیلی وقته که LCD من شکسته و من هم یکی دیگه برای خودم نخریدم و خیلی وقت هم هست که رووش کار نکردم!!! )
      http://s2.picofile.com/file/7987113438/TFT6.rar.html

      و اما بعد،
      شما از چه کامپایلری داری استفاده میکنی و نمایشگرت هم چیه؟
      pgm_read_byte برای خوندن مقادیر byte از حافظه flash میکرو هستش، باید بدونم که کامپایلرت چیه تا بگم معادلش چی میشه ....

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

      buf_store و buf_clear و buf_read هم در آخرین نسخه وجود ندارن و در نسخ اولیه برای مدیریت بافر متن بکار میرفتن ....
      جناب مهندس نوربخش مجدد خدا قوت
      بخاطر پاسخ گویی سریع تون متشکرم وخدا خیرتون بده.
      پیرو راهنما یی هاتون :
      از keil استفاده میکنم .
      و یک سوال کلی من اشتباهم این بود که کلیه برنامه شما رو روی stm32 سوئیچ کنم!
      اول باید از نمایش فونت شروع کنم بعد برم روی نمایش افکت ها و ... که توی فایل Geraphic هستش!
      پیرو همین نحوه استفاده از محتویات فایل های PE_Map.h و AF12x16.h رو میگید؟
      1_من چطوری آرایه یک فونت از توی فایل AF12x16.h رو چطوری تشخیص بدم که کدوم حرف یا کدوم کاراکتر فارسی؟
      2_از فایل PE_Map.h باید استفاده کنم؟

      3_رابطه " progmem " توی فایل فونت AF12x16.h توی خط زیر

      uint8_t __attribute__ ((progmem)) AF12x16[] = {

      با " progmem " توی فایل PE_Map.h توی خط زیر

      unsigned char PEmap[63][6] PROGMEM= {

      چیه ؟
      برای شروع بهتر کارم (که دوباره لقمه گنده تو گلوم گیر نکنه ) از این دو تا فایل چطوری توی main.c استفاده کنم؟؟؟
      ممنونم.

      دیدگاه


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

        با سلام،

        این توابع قبلا توسط Keil و در ARM استفاده شده اند، البته خیلی قدیمی هستند و باید به روز بشن، راستش من وقت این کار رو ندارم، اگر خودتون خواستید میتونید انجام بدبد. لازمه که به اونها نگاهی بندازید و آخرین نسخ رو به Keil ببرید. این کتابخونه ها بطور کامل با Keil سازگاری دارن و نیازی نیست که کار چندانی انجام بدید.

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

        در مورد تمامی سوالات شما قبلا در تاپیک های کتابخونه فونت و آموزش استفاده از اون و همچنین تاپیک ARM صحبت شده و میتونید پاسخ ها رو اونجاها دریافت کنید.

        ----------------

        پی نوشت :
        این هم داشتم گفتم شاید بدردت بخوره، قبلا یکی خواسته بود، بهش دادم ( بیشتر هدر فایل app_config.h هستش که برای پورت کردن این کدها به Keil خیلی به کارت میاد! ) :

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

        Sh_Nourbakhsh@Yahoo.com

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

        دیدگاه


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

          با عرض سلام خدمت دوستان و با تشکر از آقای نوربخش
          یک سوال از خدمتتون دارم
          این فایلی رو که برای کدویژن گذاشتید خلاصه شده فایل قبلی هستش
          البته جسارت نباشه مطالبتون فوق العاده عالیه آقای نور بخش
          تو فایل cvPEfont_dist2 خیلی چیزها ناقصه برای مثال توابع استفاده از فونت فارسی و ....(ili9325)
          تا به حال کسی با این توابع تو کدویژن با avr ال سی دی رو راه اندازی کرده؟
          من با winavr کار نکردم (بلد نیستم)
          حالا اگه امکان راه اندازی lcd n962.8با avr meg32 هست ویا اگه کسی برنامه کاملش رو داره پ کنه ممنون
          در ضمن فک کنم یه 40 بار این 11 تاپیک رو مطالعه کردم ولی هیچ چیز راجع به توابع فارسی با کدویژن پیدا نکردم کمکم کنه


          اضافه شده در تاریخ :
          با سلام مجدد
          فکر کنم هیچ کس نتونسته این توابع فارسی رو با codevisionراه اندازی کنه :cry:

          دیدگاه


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

            با سلام و تشکر
            من روی lcd n96 با atmega128 و codevision تست کردم و به خوبی کار میکنه. البته هنوز وارد جزییات نشدم. اولین سوالی که واسم پیش اومده و نتونستم حلش کنم اینه که آیا میشه اعداد فارسی رو به صورت عدد و نه رشته نمایش داد؟ چون توی مثال ها فقط اعداد فارسی بصورت رشته استفاده شدن. اگر میشه با چه تابعی؟
            ممنون.

            دیدگاه


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

              با سلام،

              درود بر همه مهندسین گرامی. من کتابخونه آقای راد رو برا 1768 کامپایل کردم ولی خیلی ارور میده. البته تو این تاپیک نباید میذاشتم. کسی این کتابخونه رو با کیل برا 1768 کار نکرده ؟؟
              این کتابخونه قبلا در کیل و برای آرم پورت و ارائه شده ( در تاپیک مربوطه جستجو کنید )

              این کتابخونه برا مد 8 بیتی یا 16 بیتی ؟
              کتابخونه فونت کاری به سخت افزار و درایور صفحه نمایش نداره

              اولین سوالی که واسم پیش اومده و نتونستم حلش کنم اینه که آیا میشه اعداد فارسی رو به صورت عدد و نه رشته نمایش داد؟
              این موضوع به کدنویسی مربوطه نه به توابع فونت مثلا استفاده از Sprintf و اینجور چیزا

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

              توجه : هر کتابخونه ای که توسط اینجانب ارائه میشه، قطعا کامله و نقصی نداره، ممکنه که در حال توسعه باشه، ولی ناقص و یا تست نشده نیست و ممکنه با توجه به عدم استقبال سایرین، آخرین ورژن ها رسما پ نشده باشند ولی در پروژههای ارائه شده آخرین ورژن ها داده میشند ( این موضوع رو بارها در پروژههای مختلف بیان کردم! )

              آقا چه جوری اینو درست کردی؟؟ میشه برای ال سی دی 240*128 فونت فارسی درست کنی؟؟
              با همت و لطف خدا و نظر مساعد دوستان! :mrgreen:
              این توابع همنطور که در تاپیک آموزشی مربوطه هم اشاره شده، برای تمامی انواع LCD های گرافیکی اعم از رنگی و سیاه و سفید، با هر رزولوشنی قابل استفاده هستند

              ببخشید بنده یک بُردی دارم که در اون ترتیب اتصال پایه های میکرو به پین های اطلاعاتی نمایشگر به صورت معکوس هستش یعنی مثلا PC0 تا PC7 به ترتیب به DB7 تا DB0 متصل هستن ، برای استفاده از توابع آقای نور بخش راد چه تغییراتی باید اعمال بشه ؟
              مشکل قابل حله، ولی سرعت کمی کند خواهد شد!
              چاره اینه که از ماکرو یا تابعی که Bit-Order رو تغییر میده استفاده کنی، من قبلا این تابع و ماکرو رو در تاپیک تابلو روان همراه با پروژههای ارائه شده، ارائه کردم ....
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

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

              دیدگاه


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

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

                دیدگاه


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

                  سلام. یه خرده دیر اومدم به جمعتون! ( همش چند سال بیشتر نمیشه! :mrgreen: )

                  یه سوال، این برنامه تو مگا32 قابل اجرا هست دیگه؟ برای تغییر پورت ها فقط باید تو فایل ili9325config.h تغییرات اعمال بکنیم؟ کامپایلر هم کدویژن هست.

                  ممنون میشم از دوستان یه خرده سریع راهنمایی بکنن.گیر کردم! :rolleyes:

                  اضافه شده در تاریخ :
                  خب...حل شد!
                  تو همون فایل ili9325config.h خط زیر رو باید تغییر میدادم که اصلا بهش توجه هم نکرده بودم:
                  کد:
                  #define TFT_8bit_INTERFACE									0
                  تو حالت اول 1 بود که باید صفر میکردمش.
                  بعدش دیدم که همه چی معکوس هست! که با خوندن این راهنمایی اون هم حل شد...

                  نوشته اصلی توسط احمد نعمتی
                  سلام دوستان
                  من هم این توابع فونت استفاده کردم lcdn96 رو به صورت 16 بیتی استفاده کردم ولی تمام حروف رو برعکس نشون میده (آینه ) و....
                  نوشته اصلی توسط احمد نعمتی
                  ممنون آقای مهدی j j مشکل حل شد
                  مشکل از دستور TFTGetID() بود چون درایور رو بر نمی گردوند برا همین رفتم توی تابع TFTInit و فقط درایور ili9325 رو فعال کردم و همه چی درست شد ...


                  اضافه شده در تاریخ :
                  آقا این تاپیک چرا خوابیده؟
                  متوجه یه اشکالی شدم تو فونت ها.
                  وقتی از دستور TextBox استفاده میکنیم که داخل یه کادر متنی رو نشون بدیم؛ حرف " ک " رو درست نشون نمیده. ایراد از کجاس؟ کسی میدونه؟

                  دیدگاه


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

                    نوشته اصلی توسط شاهرخ مستقیمی
                    خب...حل شد!
                    تو همون فایل ili9325config.h خط زیر رو باید تغییر میدادم که اصلا بهش توجه هم نکرده بودم:
                    کد:
                    #define TFT_8bit_INTERFACE									0
                    تو حالت اول 1 بود که باید صفر میکردمش.
                    بعدش دیدم که همه چی معکوس هست! که با خوندن این راهنمایی اون هم حل شد...
                    مشکل آینه بودن را چه جوری حل کردید

                    دیدگاه


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

                      نوشته اصلی توسط زوار
                      مشکل آینه بودن را چه جوری حل کردید
                      نــ مــ یـــ گـــــــــــ م!! :biggrin:

                      تو فایل ili9325.c سطر 200 رو نگاه کنین. اومده ID رو از رجیستر LCD خونده و بعد اومده بررسی کرده که اگه فلان مقدار بود اینکار رو بکن و فلان یکی بود اون کار رو بکن و...
                      سطر 201 خط زیر رو نوشته که اون رو هم غیر فعالش کرده.
                      کد:
                      TFT_ID_code = 0x9325;
                      این خط رو فعالش بکنین؛اون حالت آینه بودن حل میشه.

                      فقط یکی بیاد کمک من!!

                      نوشته اصلی توسط شاهرخ مستقیمی
                      آقا این تاپیک چرا خوابیده؟
                      متوجه یه اشکالی شدم تو فونت ها.
                      وقتی از دستور TextBox استفاده میکنیم که داخل یه کادر متنی رو نشون بدیم؛ حرف " ک " رو درست نشون نمیده. ایراد از کجاس؟ کسی میدونه؟

                      دیدگاه


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

                        ممنون اما تو حالت landscape دوباره آینه میشه درسته؟
                        برای حرف ک آقای نوربخش تو یکی از پستها توضیح داده بود ایشون راد الکترونیک را نوشته تو مثالهاش ببین میشه همونا کپی کرد

                        دیدگاه


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

                          نوشته اصلی توسط زوار
                          ممنون اما تو حالت landscape دوباره آینه میشه درسته؟
                          اون رو تست نکردم. ولی وقتی تو حالت معمولی درست نشون میده، تو حالت landscape هم درست میشه دیگه!
                          تو یکی از عکس هایی که کنار فایل پروژه هست، به شکل افقی نوشته شده فارسی نویسی. قبل از اصلاح اون ایراد؛ اون متن رو دقیقا آینه میدیدم. با اصلاح اون خط ؛ اون عبارت رو مثل همون عکس دیدم. که فکر کنم نشونه ی خوبی باشه برای درست بودن فایل های برنامه!

                          نوشته اصلی توسط زوار
                          برای حرف ک آقای نوربخش تو یکی از پستها توضیح داده بود ایشون راد الکترونیک را نوشته تو مثالهاش ببین میشه همونا کپی کرد
                          درست شد.دستتون درد نکنه. حرف "ک" رو از برنامه ی آقای نوربخش کپی کردم، درست شد!!

                          دیدگاه


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

                            سلام آقای نوربخش راد
                            از زحماتی که کشیدید خیلی تشکر می کنم
                            سوالی که من داشتم اینه که آیا امکان داره که یک کاراکتر رو هر جای صفحه که می خوایم بنویسیم؟ مثلا وقتی فونت رو AF12x16 انتخاب کنیم با دستور
                            DrawStringAt(0,0,"A",BLACK, WHITE);
                            می تونیم کاراکتر A رو توی محدوده 0تا11 افقی و 0تا15 عمودی بنوسیم اما اگر بنویسیم:
                            DrawStringAt(0,1,"A",BLACK, WHITE);
                            کاراکتر A توی محدوده ی 13تا24 افقی و 0 تا 15 عمودی نوشته میشه.
                            حالا چطور میشه کاراکتر A رو مثلا توی محدوده ی 5تا16 افقی و 0تا15 عمودی نوشت؟

                            اضافه شده در تاریخ :
                            نوشته اصلی توسط cyber68
                            سلام آقای نوربخش راد
                            از زحماتی که کشیدید خیلی تشکر می کنم
                            سوالی که من داشتم اینه که آیا امکان داره که یک کاراکتر رو هر جای صفحه که می خوایم بنویسیم؟ مثلا وقتی فونت رو AF12x16 انتخاب کنیم با دستور
                            DrawStringAt(0,0,"A",BLACK, WHITE);
                            می تونیم کاراکتر A رو توی محدوده 0تا11 افقی و 0تا15 عمودی بنوسیم اما اگر بنویسیم:
                            DrawStringAt(0,1,"A",BLACK, WHITE);
                            کاراکتر A توی محدوده ی 13تا24 افقی و 0 تا 15 عمودی نوشته میشه.
                            حالا چطور میشه کاراکتر A رو مثلا توی محدوده ی 5تا16 افقی و 0تا15 عمودی نوشت؟
                            خودم جوابش رو یافتم

                            دیدگاه


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

                              سلام.
                              دوست عزیز همونطور که انتظار کمک دارین، دیگران هم از شما انتظار کمک دارن!
                              لطف کنین و بفرمایین چطوری حلش کردین.
                              سپاس

                              دیدگاه


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

                                چشم
                                راه حلش اینه که باید توی فایل font.h در جایی که متغیرها تعریف شدن، دو تا متغیر به صورت زیر اضافه کنید:
                                کد:
                                [left]
                                extern int               fontXbias;
                                extern int               fontYbias;
                                [/left]
                                سپس توی فایل font.c میریم و توی تابع SetLine اون دو تا متغیر رو به صورت زیر اضافه می کنیم:
                                کد:
                                [left]
                                void SetLine(unsigned char line,unsigned char column)
                                {
                                	if(peLETTER == P_LETTER)
                                		cursorX =GetMaxX() - (unsigned int)FontWidth * FontXScale * column + fontXbias;
                                	else
                                		cursorX =(unsigned int)FontWidth * FontXScale * column + fontXbias;
                                
                                	cursorY =(unsigned int)(FontHeight +FontSpaceY)* FontYScale * line + fontYbias;
                                }
                                [/left]
                                سپس اون دو تا متغیر رو توی فایل اصلی که کدهای خودمون رو توش می نویسیم به صورت زیر تعریف می کنیم:
                                کد:
                                [left]
                                int fontXbias = 0, fontYbias = 0;
                                [/left]
                                حالا برای اینکه نقطه ی شروع متنی که می خوایم تایپ کنیم پیکسل i و j باشه باید به صورت زیر عمل کنیم:
                                کد:
                                [left]
                                fontXbias = i;
                                fontYbias = j;  
                                DrawStringAt(0,0,"text", BLACK, WHITE);
                                [/left]

                                دیدگاه

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