اطلاعیه

Collapse
No announcement yet.

تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

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

    تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

    سلام خدمت دوستان.
    داستان از اینجا شروع شد که من می خواستم oled فروشگاه رو راه بندازم که یه سرچ تو انجمن زدم و به این :NO:رسیدم که دوست عزیزمون Rohalamin زده بود .اما ....
    داستان تازه شروع شده بود چون تو اون تاپیک کسی به نتیجه خاصی نرسیده بود.دست به کار شدم و تو نت به دنبال گشتن برای اثری از oled سایت که به سایتی رسیدم که ....بقیه شو از اینجا بخونید:http://www.eca.ir/forum2/index.php?topic=83593.msg640626#msg640626
    حالا از برو بچ c کار حرفه ای :twisted:تقاضا دارم :redface:که در تحلیل این GUI کمک کنن.تا بتونم اونو واسه OLED فروشگاه پورت کنم .انشالله نتایج نهایی رو هم در همون پست بالا میذارم.همونطور که تو اون تاپیک هم گفتم از کدهاش و طریقه آدرس دهیش سردرنمیارم :cry2: :angry:.
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ‌فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران

    #2
    پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

    خیلی موراد گفته شده توش رو شما توی یه کتاب زبان برنامه نویسی C هم می تونید پیدا کنید. خصوصا قسمت های مربوط به اشاره گرها(pointers) و ساختارها(Structures) کارت رو راه می اندازه. خودت هم دست به کار شو.

    دیدگاه


      #3
      پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

      نوشته اصلی توسط Rohalamin
      خیلی موراد گفته شده توش رو شما توی یه کتاب زبان برنامه نویسی C هم می تونید پیدا کنید. خصوصا قسمت های مربوط به اشاره گرها(pointers) و ساختارها(Structures) کارت رو راه می اندازه. خودت هم دست به کار شو.
      خودم هم دست بکار شدم .روش کار میکنم اما به دلیل اینکه باید هر چه زودتر سعی کنم یه پروژه سنگین رو به جایی برسونم فول تایم وقتم روش نیست.ولی انشالله هر چی زودتر آمارشو در میارم :mrgreen:
      ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ‌فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
      شهید دکتر مصطفی چمران

      دیدگاه


        #4
        پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

        سلام.
        راستش منم از این نمایشگرها خیلی خوشم اومده ولی فعلا وقت راه‎اندازی شونو ندارم.
        مختصر سرچی کردم تو نت و یه لینک از ebay پیدا کردم که فکر میکنم کمک بزرگی برا دوستان بکنه در راه‎اندازی این نمایشگر.
        هم دیتاشیت آی‎سی رو داره و هم 3تا برنامه به زبون C موجوده، پایین صفحه مورد نظر.
        اینم لینکش: http://www.ebay.com/itm/White-0-96-i...item4616981072

        دیدگاه


          #5
          پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

          تونستی راش بندازی؟
          بذار یه مقدار کمکت کنم.
          اولین چیزی که باید توی تابع main بذاری این تابع هستش:


          [code=c]UG_S16 UG_Init( UG_GUI* g, void (*p)(UG_S16,UG_S16,UG_COLOR), UG_S16 x, UG_S16 y );[/code]

          همون طور که می بینی باید چند آرگومان رو واسه این تابع ردیف کنی تا بتونی از این GUI استفاده کنی. اولین آرگومان اینه:

          [code=c]UG_GUI* g[/code]

          این یه ساختار(structure) هستش که باید مقدار دهی بشه. در واقع یه اشاره گر هستش به ساختار GUI

          دومین آرگومان هم اینه:

          [code=c]void (*p)(UG_S16,UG_S16,UG_COLOR)[/code]

          این یه تابع اشاره گر هستش. شما باید قبل از استفاده از این کتابخانه(یا بهتره بگم GUI)، یه تابع بنویسی که بتونی باهاش یه پیکسل رو با رنگی که می خوای روشن کنی. متوجه منظورم میشین؟ یعنی با این تابع بتونید با دادن مقدار محور X و Y و رنگ موردنظرت واسه پیکسل، یه پیکسل رو روشن کنید.

          دو آرگومان بعدی هم اینان:


          [code=c]UG_S16 x[/code]

          و

          [code=c]UG_S16 y[/code]

          عبارت UG_S16 همون int16_t هستش. در واقع این دو متغیر های هستن واسه میزان طول و عرض نمایشگر. باید یه مقدار عددی ثابت بهشون بدی. مثلا اگه بخوای با این GUI این نمایشگر فروشگاه رو راه بندازی:

          OLED 128x64 0.96 inch

          اگه تو صفحه ش نگاه کنی واسه Number of Pixels نوشته 128×64
          یعنی طولش میشه 128 که همون مقدار X هستش و واسه Y هم 64 رو می نویسی.


          در کل، کل چیزی که شما باید نویسی اینه:

          [code=c]void Pixelset( UG_S16 x , UG_S16 y , UG_COLOR c )
          {
          //code haii ke bayad benevisi vase in tabe
          }

          UG_GUI guilcd; //,vase sakhtar ke bayed meghdar dehi bo****

          int main( void )
          {
          UG_Init( &guilcd , Pixelset , 128 , 64 )
          // baghiye kodhato inja benevis
          while(1)
          {

          }
          }[/code]

          تا شب دیگه باید بیای و بگی راهش انداختی. با احتساب سالم بودن از لحاظ سخت افزاری.

          دیدگاه


            #6
            پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

            چرا طرف تو این GUI اینطوری نوع داده رو مشخص کرده:UG_S16
            اخه چه کاریه oo:
            و بعد اینکه نوع داده رو اینطوری مشخص کردن مثلا :
            uint16_t
            تو همه کامپایلرها تعریف شده است؟البته یه سرچ زدم فهمیدم که تو بعضی کامپایلرها (mingw) باید stdint.h رو اینکلود کنیم تا بشناسه.ولی تو یه کامپایلر (xc8)راحت شناخت .بدون اینکلود کردن!!
            این یه ساختار(structure) هستش که باید مقدار دهی بشه. در واقع یه اشاره گر هستش به ساختار GUI
            چه مقداردهی ؟کار این اشاره گر چیه منظورم اینه که نقشش تو اینجا چیه؟
            ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ‌فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
            شهید دکتر مصطفی چمران

            دیدگاه


              #7
              پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

              نوشته اصلی توسط phoenix2000
              چرا طرف تو این GUI اینطوری نوع داده رو مشخص کرده:UG_S16
              اخه چه کاریه oo:
              و بعد اینکه نوع داده رو اینطوری مشخص کردن مثلا :
              uint16_t
              تو همه کامپایلرها تعریف شده است؟البته یه سرچ زدم فهمیدم که تو بعضی کامپایلرها (mingw) باید stdint.h رو اینکلود کنیم تا بشناسه.ولی تو یه کامپایلر (xc8)راحت شناخت .بدون اینکلود کردن!!
              نمی دونم واقعا. شما بهش دست نزن و کارتو بکن. مشکلی ایجاد نمیکنه.

              نوشته اصلی توسط phoenix2000
              چه مقداردهی ؟کار این اشاره گر چیه منظورم اینه که نقشش تو اینجا چیه؟
              من فایل رو پاک کردم ولی تا جایی که یادم میاد هیچ! شما اصلا لازم نیست بهش دست بزنی. فقط یک ساختار براش تعریف میکنی. مثل همین کاری که من کردم. منظورم این خط هستش:

              [code=c]UG_GUI guilcd;[/code]

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

              دیدگاه


                #8
                پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

                سلام
                شما روی کدوم مدلش دارید کار میکنید ؟
                کرمش افتاده من هم راه اندازیش کنم
                بگید کدوم رو استفاده میکنید من هم بخرم باهم راه اندازیش کنیم

                دیدگاه


                  #9
                  پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

                  سلام
                  http://eshop.eca.ir/lcd/1991-oled-96x64-08-inch-full-color.html
                  اگه راه بیفته که خیلی عالیه .من که نتونستم :angry:الانم وقتشو ندارم :cry2: یه نمونه برنامه ازش تو لینکی که تو پست اول قرار دادم هست که میتونه خیلی کمکتون کنه.
                  ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ‌فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                  شهید دکتر مصطفی چمران

                  دیدگاه


                    #10
                    پاسخ : تحلیل یک GUI حرفه ای(قابل پورت شدن به هر نوع میکروکنترلر و نمایشگر lcd oled ...)

                    این لینک هم یک مثال برای 1306 هست
                    https://github.com/adafruit/Adafruit_SSD1306

                    دیدگاه

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