اطلاعیه

Collapse
No announcement yet.

همه چیز برای KS0108 تحت WinAVR

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

    همه چیز برای KS0108 تحت WinAVR

    سلام، دوستان و اساتید محترم، :bye

    اگه اجازه بفرمائید قصد دارم یه مقدار زکات پخش کنم، :biggrin: در همین راستا توی فایل پیوست میخوام توابعی که برای LCD گرافیکی مورد نیازتون میشه رو تقدیم کنم....
    قبلا بگم که این توابع رو یا خودم نوشتم یا برای بهینه شدن و یا افزایش قابلیت هاشون، در اونا تغییراتی دادم ( منبع اصلی رو هم در ابتدای فایل ذکر کردم ) و سعی کردم با هرکدوم یه مثال هم براتون بزارم ( توی فایل main )

    توابع ارائه شده : :nerd:
    GLCD : توابع مربوط به LCD گرافیکی KS0108 با قابلیت اتصال LCD به پورت و یا استفاده بعنوان Memory-mapped ( برای کشف جزئیات به فایل هدر مراجعه کنید و یا خودم رو خبر کنید! ) و امکان استفاده از fPrintf و توابع مشابه مثل Xitoa
    Graphic : توابع رسم اشکال هندسی، نقطه، خط و اینجور چیزا برای LCD گرافیکی ( برای جزئیات به هدر فایل مراجعه شود )
    G_FONT1 : فونت های مورد نیاز برای استفاده در توابع KS0108
    G_FONT2 : توابع Font و فونت های مورد نیاز برای استفاده در توابع Font و برنامه ساختن فونت هاش توسط خودتون با قابلیت Import فونت های سیستم. اینم بگم که با استفاده از تابع فونت، میتونید چیدمان نوشته و زاویه نوشته رو تغییر بدین و یا به فونتتون Scale بدین یا فواصل خالی بین کاراکترها رو تغییر بدین و ..... ( البته توی این LCD بخاطر رزولوشن و ابعاد کم، خیلی بدرد نمیخوره، برای LCD گرافیکی – رنگی N96 خوبه ! البته قبلش یه کوچولو تغییراتی باید بدین مثل اندازه متغیر های رنگ ها و اینا و .... )
    G_PIX : نمونه عکس و برنامه تبدیل عکس به هدر فایل برای LCD گرافیکی
    ADC : توابع کامل استفاده از ADC میکروهای AVR ( مورد نیاز در تاچ پد! و اسیلوسکوپ!!! )
    SinCos : توابع مختصر و مفید سینوس و کسینوس برای علاقمندان به ساعت روی LCD گرافیکی !
    Util : توابع مورد نیاز تایپ متغیرها بجز Inttype
    Xitoa : توابع مختصر، مشابه fPrintf با حجم کم و سرعت بالا ( البته مختصر با نمونه توی فایل main )
    TouchADC : و اما در نهایت، توابع شیرین Touch-Pad با استفاده از ADC میکرو با قابلیت کالیبراسیون و ذخیره در eeprom میکرو برای روز مبادا !!! دقتش در حد خیلی قابل قبول برای این LCD هستش و سه تا روتین نمونه براش ارائه کردم.
    توجه کنید که از مداد معمولی با نوک نچندان تیز استفاده کنید و موقع کالیبره کردن هم مداد رو نه با فشار زیاد و نه کم، بلکه با فشار مناسب استفاده کنید. اگر قبلا کالیبره شده باشه، چند ثانیه وقت میده که با تاچ کردن صفحه کالیبره مجدد انجام بشه و در غیر اینصورت از مقادیر ذخیره شده استفاده میکنه.....
    روی تاچ اون طرفیه که کابل فلتش رنگش سیاه یا قهوه ای سوخت هستش. ( نه سمت براق و طلائی )
    ممکنه بدلیل نحوه نصب تاچ پد روی LCD ( فلت به سمت بالا و یا پائین و یا انواع دیگرش، فلت در سمت چپ و یا راست ) لازم باشه توی روتین Touch_VAL تغییراتی اعمال کنید. یعنی صفر و یک اعمال شده به X+ و X- و یا Y+ و Y- رو تغییر بدید. و در هر صورت، پایه های X+ و Y+ با PullUp 100 کیلو اهمی به ADC متصل میشن ( اصلا نیازی به تغییرات سخت افزاری نداره ) لطفا یه نگاهی به هدر فایل Touch بندازین.....
    متفرقه : چون من LCD و صفحه کلیدها و LEDهام رو memory-mapped کردم و استفاده میکنم، فکر کردم چند تا روتین که جنبه آموزشی هم داشته باشه رو توی فایل main براتون بزارم مثل استفاده از آرایه های متنی و ... ( البته به اساتید محترم جسارت نباشه، برای مبتدی هائی مثل خودم و دانشجویان عزیز .... ) و دو تا روتین هم برای چگونگی استفاده از fPrintf استاندارد و Xitoa گذاشتم.

    AVRdude GUI 32 : رابط گرافیکی AVRdude

    توجـــه 1 : روتین های داخل main رو تک – تک استفاده کنید نه با هم.... اگر سئوالی بود در خدمتیم و اینا.
    توجـــه 2 : فقط برای استفاده آموزشی و با ذکر منابع مجاز است، خدای نکرده استفاده تجاری نکنید!
    توجـــه 3 : اگر بدرد بخور بود، تشکر – کف – دست – هورا – صلوات - ........ یادتون نره!!!

    مرسی – خوش گذشت oo: !!!

    http://www.4shared.com/file/Cc41vDFm/KS0108_dist.html
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

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

    #2
    پاسخ : همه چیز برای KS0108 تحت WinAVR

    با سلام ممنون از کار قشنگی که انجام دادی یه چند تا چیزم بگم اگه اضافه کنی خیلی کامل میشه اول یه قابلیت هست که توی بیسکام برای glcd هست اما تاحالا توی هیچکدوم از کتابخونه های c ندیدم و اون معکوس کردن رنگ پس زمینه است مثلا یک متن را نوشتی که کارکترها سیاه وپس زمینه سفیده و تو بتونی اینرا برعکس کنی کار بردشم مواقعی که بخواهی تنظیمات انجام بدی وبخواهی یک متن را select کنی 2- اگر بتونی فونت فارسی اضافه کنی خیلی خوب میشه 3-اگر بتونی برای کدویژن هم بنویس خوبه و درکل همین کار شما واقعا جای تقدیر وتشکر داره اینم :applause: تشویق

    دیدگاه


      #3
      پاسخ : همه چیز برای KS0108 تحت WinAVR

      جناب زوار عزیز :bye
      با سلام،
      ضمن تشکر از ابراز لطف جنابعالی، با تشویق شما من هم مشتاق شدم که در اولین زمان ممکن، امکان فونت فارسی رو اضافه و ارائه کنم. ولی متاسفانه امکان تبدیل به کدویژن برام نیست، چون اصلا کدویژن کار نکردم و کمپایلر و برنامه هاش رو هم روی سیستمم ندارم. ولی فکر نکنم خیلی با هم متفاوت باشن. اگر دوستانی که میتونن زحمتش رو بکشن که خیلی خوبه.
      اما در مورد امکان معکوس کردن رنگ نوشته ها و زمینه و اینا باید بگم که این امکان وجود داره....
      با فانکشن GLCD_SetInverted میتونید رنگ کل صفحه رو معکوس کنید و با فانکشن GLCD_InvertRect میتونید رنگ یک ناحیه خاص رو معکوس کنید. با اضافه کردن کدهای زیر توی روتین myXitoa قبل از خط آخر، یعنی myLEDs(); میتونید موضوع رو تجربه کنید :

      _delay_ms(2000);
      GLCD_SetInverted(INVERTED);
      _delay_ms(2000);
      GLCD_SetInverted(NON_INVERTED);

      _delay_ms(2000);
      GLCD_InvertRect(30, 10, 50, 40);
      _delay_ms(2000);
      GLCD_InvertRect(30, 10, 50, 40);
      در ضمن یه سری امکانات اینچنینی توی روتین های فونت توی دایرکتوری G_FONT2 هم وجود داره.
      باز هم اگر موردی باشه، در خدمتیم...

      مرسی - خوش گذشت!
      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

      Sh_Nourbakhsh@Yahoo.com

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

      دیدگاه


        #4
        پاسخ : همه چیز برای KS0108 تحت WinAVR

        دوستان سلام، :bye

        بالاخره روز جمعه وقت کردم که روی فونت فارسی کار کنم و تمومش کنم!
        این یه دیکودر فونت هستش که بر اساس برنامه LFG نوشته مسعود ابراهیمی کار میکنه. ( برنامش رو براتون گذاشتم ) وقت نداشتم یه فونت قشنگ براش درست کنم، ولی اگر یه جوان مرد پیدا شد و این کار رو کرد، لطفا به ماهم بده. اگر باگی مشاهده کردید هم، اطلاع بدین تا برطرفش کنم.
        ( تبدیلش به کدویژن و یا بیسکام هم خیلی راحته... )

        من خودم خیلی از LFG خوشم نیومده! و دارم روی فونت ادیتور Reddmann که توی دایرکتوری G_FONT2 هستش و امکان تبدیل فونت های ویندوز رو هم داره، کار میکنم و میخوام بزودی امکان فونت فارسی رو با یه فونت زیبا به توابع Font اضافه کنم. ( آماده شد، براتون میزارم روی سایت )

        برای استفاده، دایرکتوری G_FONT3 و فایل main رو در موارد قبلی که دانلود کردین کپی کنید.

        http://www.4shared.com/file/RPx_NFFW/G_FONT3.html

        مرسی - خوش گذشت!
        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

        Sh_Nourbakhsh@Yahoo.com

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

        دیدگاه


          #5
          پاسخ : همه چیز برای KS0108 تحت WinAVR

          دوستان سلام، :bye

          لطفا برای دریافت نسخه کامل و جدید تابع فونت فارسی - عربی و انگلیسی ترکیبی برای انواع LCD های گرافیکی به همراه توضیحات مربوطه، به تاپیک ذیل مراجعه بفرمائید.

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

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

          Sh_Nourbakhsh@Yahoo.com

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

          دیدگاه


            #6
            پاسخ : همه چیز برای KS0108 تحت WinAVR

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

            دیدگاه


              #7
              پاسخ : همه چیز برای KS0108 تحت WinAVR

              نوشته اصلی توسط POLESTAR
              دلم نیومد برای تشکر فقط روی کلید تشکر کلیک کنم
              اقا واقعا دستت درد نکنه کار قشنگی کردی به خدا ایول داره
              با سلام، :bye

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

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

              Sh_Nourbakhsh@Yahoo.com

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

              دیدگاه


                #8
                پاسخ : همه چیز برای KS0108 تحت WinAVR

                سلام بر دوست عزیزم aivhl
                اکه مقدور بشه لطفا کمی در مورد نحوه طراحی دیکودر فونت توضیح بدین ، خیلی ممنونم
                چو ایران نباشد تن من مباد

                دیدگاه


                  #9
                  پاسخ : همه چیز برای KS0108 تحت WinAVR

                  نوشته اصلی توسط miladchalipa2002
                  سلام بر دوست عزیزم aivhl
                  اکه مقدور بشه لطفا کمی در مورد نحوه طراحی دیکودر فونت توضیح بدین ، خیلی ممنونم
                  با سلام،

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

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

                  از این مقدمه و توضیحات فلسفی هم بگذریم :eek:
                  توضیح کامل جزئیات و آموزش نوشتن دیکودر برای یه پست خیلی زیاده، چون ابعاد مختلفی داره مثل خود برنامه ایجاد کننده فونت و زبان نوشته و .... که لازمه مثلا توی یه مجله که شاید هم در سه یا چهار شماره باشه مطرح بشه.
                  و در کل باید بگم از جزئیات هدر فایل فونت که خیلی به برنامه ایجاد کنندش بستگی داره تا نحوه نمایش اون و پیمایش روی صفحه متناسب با فونت چپ چین یا راست چین و حتی نوع LCD که متنی هستش یا گرافیکی، پیچیدگی و جزئیات خیلی-خیلی زیاده. و برای درک مطلب، حتما باید یکی دو تا دیکودر بصورت عملی Trace بشن و خط به خط توضیح داده بشن. مثلا دوتا دیکودری که من ارائه کردم، یکیش خیلی ساده ست و دیگری خیلی پیچیده.
                  مثلا به هدر فایل فونتی که برنامه H. Reddmann تولید میکنه یه دقتی بکنید. چقدر پیچیده ست؟ تمام جزئیات فونت رو داره، از اندازه تک تک کاراکترها گرفته تا اندازه خود هدر فایل و کمپرس بودن یا نبودن فونت و تعداد کاراکترها در فونت و خیلی چیزای دیگه، یه تاپیک توی یکی از سایت های آلمانی هست که مدتهای طولانی، فقط این برنامه و فونت های تولیدیش رو تحلیل میکنه. حالا دیکودرش رو نگاه کنید که برای پیدا کردن اطلاعات یه کاراکتر از توی حافظه برنامه چیکار میکنه؟ و چقدر پیچیدست ( البته این از مهمترین قسمت های دیکودره ) و سایر پروسس ها هم همینطور...... نکته این که نوشتن دیکودر برای یک هدر فایل فونتی، مستلزم شناخت دقیق هدر فایل فونت و برنامه تولید کنندشه.

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

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

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

                  Sh_Nourbakhsh@Yahoo.com

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

                  دیدگاه


                    #10
                    پاسخ : همه چیز برای KS0108 تحت WinAVR

                    سلام بچه ها! :nerd:
                    دارم تلاش میکنم تا این کتابخونه رو برای درایور ILI9325 که برای LCD N96 هست تغییر بدم، چند تا سوال پیش اومده:
                    1- هدری که اینجا اینکلود میشه #include <avr/pgmspace.h> چیه؟ (من با CV کار میکنم، تو پوشش نیست)کجاس؟ کارش چیه؟
                    2- این 2تا دستور چیکار میکنن؟ pgm_read_byte و pgm_read_byte_near ؟ مال چه زبونین؟! معادلش تو CV- کد ویژن چی هست؟
                    3- این دستور کارش چیه؟ GLCD_WriteData (آخه لازمه تا این دستور رو با درایور N96 معادلسازی کنم)
                    ممنون...
                    اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                    دیدگاه


                      #11
                      پاسخ : همه چیز برای KS0108 تحت WinAVR

                      نوشته اصلی توسط ☺بابابرقی☺
                      سلام بچه ها! :nerd:
                      دارم تلاش میکنم تا این کتابخونه رو برای درایور ILI9325 که برای LCD N96 هست تغییر بدم، چند تا سوال پیش اومده:
                      1- هدری که اینجا اینکلود میشه #include <avr/pgmspace.h> چیه؟ (من با CV کار میکنم، تو پوشش نیست)کجاس؟ کارش چیه؟
                      2- این 2تا دستور چیکار میکنن؟ pgm_read_byte و pgm_read_byte_near ؟ مال چه زبونین؟! معادلش تو CV- کد ویژن چی هست؟
                      3- این دستور کارش چیه؟ GLCD_WriteData (آخه لازمه تا این دستور رو با درایور N96 معادلسازی کنم)
                      ممنون...
                      با سلام، :bye

                      1 - برای ذخیره و بازخوانی اطلاعات از حافظه برنامه هستش که توی CV نیست و باید حذف بشه و بجای PROGMEM توی تعریف متغیر هم flash جایگزین بشه

                      2 - این دوتا دستور هم به طبع مورد اول، کار فراخوانی از حافظه به مموری رو انجام میدن که در CV باید با پوینتر char عوض بشن، یعنی این *(uint8 flash *)(x)

                      3 - اینم که دستور نیست، یه روتین مربوط به فایل ks0108.c که دیتا رو روی LCD مینویسه، یه چیز تو مایه های ست کردن پیکسل :mrgreen:
                      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                      Sh_Nourbakhsh@Yahoo.com

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

                      دیدگاه


                        #12
                        پاسخ : همه چیز برای KS0108 تحت WinAVR

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

                        1 - برای ذخیره و بازخوانی اطلاعات از حافظه برنامه هستش که توی CV نیست و باید حذف بشه و بجای PROGMEM توی تعریف متغیر هم flash جایگزین بشه

                        2 - این دوتا دستور هم به طبع مورد اول، کار فراخوانی از حافظه به مموری رو انجام میدن که در CV باید با پوینتر char عوض بشن، یعنی این *(uint8 flash *)(x)

                        3 - اینم که دستور نیست، یه روتین مربوط به فایل ks0108.c که دیتا رو روی LCD مینویسه، یه چیز تو مایه های ست کردن پیکسل :mrgreen:

                        خیلی ممنون دوست من

                        2- یعنی من اون دو تا رو حذف کنم و فقط به جاش بنویسم *(uint8 flash *)(x) ؟؟ اینجوری ارور میده که undefined symbol 'uint8' ، خب حق هم داره!
                        آهان راستی بگم که دارم با فایل FE_FONT.c کار میکنم که توش این خط دستور هست که میخوام به cv تبدیلش کنم:
                        کد:
                        FEfontHeight			= pgm_read_byte_near(&FEfontPointer[3]);
                        (تو پرانتز!!: بچه ها چرا این ادیتور سایت اینجوریه؟ انگلیسی که مینویسیم جا به جا نشون میده-مثل کد بالا؟؟؟ :angry
                        3- فک میکنم درد سر تبدیل این کتابخونه برای n96 هم همین تابع باشه نه؟ اگه میشه یکم توضیح بدید در مورد این تابع GLCD_WriteData راستی اینو هم بگم که می خوام این کتابخونه رو(FE_FONT) با کتابخونه tftlcd_functions مرج کنمش

                        4- سوال جدید: تو N96 من از ارتباط 16بیتی با LCD استفاده میکنم،این به نظرتون تغییری در توابع چاپ کاراکتر و... ایجاد میکنه؟
                        اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                        دیدگاه


                          #13
                          پاسخ : همه چیز برای KS0108 تحت WinAVR

                          با سلام خدمت دوستان گرامی
                          بنده یه پروژه دارم که در اون نیاز به یک ال سی دی گرافیکی و یا رنگی هست(بستگی به کارایی، کیفیت و از همه مهمتر قیمت داره) که باید در اون به غیر از درج فونت فارسی آرم(یا تصویر) هم باید درج بشه، کامپایلری رو هم که کار می کنم فعلا کدویژن هست :redface: ، این تابعی که لطف کرده در اختیار دیگران قرار دادین رو نتونستم کار کنم .
                          میشه یکم راهنماییم کنید؟؟
                          راسی توی ال سی دی N96 در یک سطر چند کاراکتر میشه درج کرد که خوانا باشه؟؟
                          خدايا چنان کن سرانجام کار *** که تو خشنود باشي و ما رستگار

                          دیدگاه

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