اطلاعیه

Collapse
No announcement yet.

هدر ++C ماژول N96LCD

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

    هدر ++C ماژول N96LCD

    سلام.
    همونطور که میدونید هدری که در حال حاظر برای ماژول LCD 2.8 ایچی سایت یا همون LCD N96 چینی وجود داره با C نوشته شده. من هم تصمیم گرفتم همون هدر رو به ++C و به صورت شی گرا درش بیارم. :read:
    خوب حالا بریم سر اصل مطلب اول از همه این لینک هدر اصلی که توسط جناب آقای علی ایمانی فر با زبان C نوشه شده.
    و این هم هدر جدید که با اندکی تغیرات که در ادامه توضیح میدم :
    دانلود از پرشین گیگ
    لینک کمکی
    اول از همه نحوه کار هدر :
    اول از همه باید فایل های زیر رو به پروژه اضافه کنیم (این فایل ها در لینک بالا موجود است) :
    کد:
    N96LCD.cpp
    N96LCDConfig.h
    N96LCD.h
    Delay.h
    FAmap.h
    PE & EN font1
    بعد باید وارد فایل N96LCDConfig بشیم و یه سری تنظیمات رو انجام بدیم.
    این فایل حاوی یک سری ماکرو هست که باید با توجه به سخت افزارتون و ... تنظیمش کنید

    TFTLCD_DATABUS_8 : با تعریف این ماکرو میتونید از مد 8 بیتی استفاده کنید ( البته باید توی سخت افزار تغیراتی ایجاد کنید)
    LANDSCAPE : با تعریف این ماکرو صفحه در حالت افقی تنظیم میشه
    MICRO_HEADER : مقابل این ماکرو باید هدر مربوط به میکرو کنترلرتون رو بنویسید. که به صورت پیشفرض <Atmel/ioat91sam7s64.h> هست.
    DELAY_HEADER : میتونید هدر مربوط به تابع Delay رو از اینجا تغیر بدید ولی یکی توی لینک بالا همراه بقیه هدر ها هست میتونید از همون استفاده کنید
    PORTRAIT : با تعریف این ماکرو صفحه در حالت عمودی تنظیم میشه
    TFTLCD_DATAPORT_A : با تعریف این ماکرو مشخص میشه پایه های Data روی پرت A قرار داره ( میتونید پرتو با همین ماکرو عوض کنید یعنی در آخر ماکرو A تغیر بدید)
    TFTLCD_CONTROLPORT_A : با تعریف این ماکرو مشخص میشه پایه های RST, RS, CS, WR, RD روی پرت A قرار داره (میتونید مثل ماکرو قبل پرت رو عوض کنید)
    TFTLCD_DATAPORT_OFFSET : با استفاده از این ماکرو باید مشخص کنید اولین پایه مربوط به Data روی کدوم پین هست. بقیه پایه های Data باید به ترتیب به پین های بعدی متصل باشند
    TFTLCD_RST : این ماکرو شماره پین پایه RST رو مشخص میکنه.
    TFTLCD_RS : این ماکرو شماره پین پایه RS رو مشخص میکنه.
    TFTLCD_CS : این ماکرو شماره پین پایه CS رو مشخص میکنه.
    TFTLCD_WR : این ماکرو شماره پین پایه WR رو مشخص میکنه.
    TFTLCD_RD : این ماکرو شماره پین پایه RD رو مشخص میکنه.

    ّبعد از اعمال تنظیمات باید فایل N96LCD.h رو به فایل main برنامه ضمیمه کنیم. بعد یک شی از کلاس N96LCD میسازیم تا به با استفاده از اون به توابع مربوط به LCD دسترسی داشته باشیم.
    و بعد هم قبل از کار با LCD باید تابع Init رو صدا بزنیم و بعد با استفاده از Fill صفحه رو با یک رنگ پاک کنیم.

    تفاوت دیگه ی این هدر با هدر اصلی در اسم توابع هست که به این صورت تغیر کرده :

    کد:
    tftlcd_fill -> Fill
    tftlcd_imshow -> DrawImage
    tftlcd_set_area -> SetArea
    tftlcd_set_font_color -> SetFontColor
    tftlcd_fa_num -> SetNumberFa
    tftlcd_en_num -> SetNumberEn
    tftlcd_font_effect -> SetFontEffect
    tftlcd_italic_on -> TurnItalicOn
    tftlcd_italic_off -> TurnItalicOff
    tftlcd_put_char -> PutChar
    tftlcd_put_bold_char -> PutBoldChar
    tftlcd_goto_xy -> GoToXY
    tftlcd_text_highlight_on -> TurnTextHighlightOn
    tftlcd_text_highlight_off -> TurnTextHighlightOff
    tftlcd_text_highlight_color -> SetTextHighlightColor
    tftlcd_putsf_mix -> PutSizableString
    tftlcd_clear -> Clear
    tftlcd_init -> Init
    tftlcd_write_pixel -> SetPixel
    tftlcd_read_pixel -> GetPixel
    tftlcd_draw_line -> DrawLine
    tftlcd_draw_rectangle -> DrawRectangle
    tftlcd_draw_round_rectangle -> DrawRoundRectangle
    tftlcd_draw_circle -> DrawCircle
    tftlcd_draw_elliptic -> DrawElliptic
    tftlcd_write_pic -> DrawPicture
    init_lcd_for_picture -> InitPicture
    tftlcd_gotoxy -> GoToEnXY
    tftlcd_putchar -> PutEnChar
    tftlcd_putsf -> EnPutsf
    tftlcd_puts -> EnPuts
    tftlcd_draw_button -> DrawButton
    tftlcd_pattern -> Pattern
    unicode2ascii -> UniToAsc
    اینها توابع public بودند و این هم توابع private :

    کد:
    tftlcd_write_index_register -> SetRegister
    tftlcd_write_wdr -> SendData
    tftlcd_read_rdr -> ReadData
    tftlcd_write_command -> SendCommand
    تقریبا کار همه توابع از روی اسمشون پیداست. تعریف توابع هم به این شکل صورت گرفته :

    کد:
    public:
     void Fill(int color);
     void DrawImage(int x0,int y0,int N,int gray,const unsigned short *img);
     void SetArea(int X0,int Y0,int DX,int DY,int S_X,int S_Y);
     void SetFontColor(int color);
     void SetNumberFa(void);
     void SetNumberEn(void);
     void SetFontEffect(int ef);
     void TurnItalicOn(void);
     void TurnItalicOff(void);
     void PutChar(char character);
     void PutBoldChar(char character , int size);
     void GoToXY(int x,int y);
     void TurnTextHighlightOn(void);
     void TurnTextHighlightOff(void);
     void SetTextHighlightColor(unsigned int color);
     void PutSizableString(const unsigned char *string , int size);
     void Clear(void);
     void Init(void);
     void SetPixel(int x,int y,int color);
     int GetPixel(int x,int y);
     void DrawLine(int x0,int y0,int x1,int y1,int color);
     void DrawRectangle(int x0,int y0,int x1,int y1,char fill,int color);
     void DrawRoundRectangle(int x0,int y0,int x1,int y1,int rad,char fill,int color);
     void DrawCircle(int x0,int y0,int radius,char fill,int color) ;
     void DrawElliptic(int x0,int y0,int a,int b,char fill,int color);
     void DrawPicture(int x0,int y0,const unsigned short *pointer);
     void InitPicture(void);
     void GoToEnXY(int x,int y);
     void PutEnChar(char character,int forground_color,int background_color,int transparent_mode);
     void EnPutsf(const char *string,int forground_color,int background_color,int transparent_mode);
     void EnPuts(char *string,int forground_color,int background_color,int transparent_mode);
     void DrawButton(int x0,int y0,int x1,int y1,int font_color,char *string);
     void Pattern(void);
     void UniToAsc(char *uni_str , char *ascii_str);
    private:
     void SetRegister(int);
     void SendData(int);
     int ReadData(void);
     void SendCommand(int,int);
    ---------------------------------------------------------------

    اینها چیزایی بود که برای شروع نیاز داشتیم. ولی خودم هنوز فکرایی دارم که انشالله روی این هدر پیاده میکنم ( مثل GUI به صورت شی گرا و ... ) . همینطور یکم بیشتر باید روی ساختار کار بشه یه سری چیزای دیگه هم از ماکرو در بیاد و با توابع قابل تنظیم باشه. به هر حال نسخه های بعدی رو هم توی همین پست قرار میدم :smile:

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

    پروژه های نمونه نسخه 1 :

    1. نمایش تصویر - کامپایلر IAR

    2. ساعت عقربه ای - کامپایلر IAR


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

    تصاویر :



    غفلت از یار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بی افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

    #2
    پاسخ : هدر ++C ماژول N96LCD

    اگر نیاز به یک برنامه ی اجرایی (exe) نیز داشتی می تونی روی من نیز حساب کنی
    مثلا کد کردن عکس و ...
    دکتر چمران در 1311 در تهران متولد شد
    وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
    او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

    دیدگاه


      #3
      پاسخ : هدر ++C ماژول N96LCD

      چشم حتما :redface:
      غفلت از یار, گرفتار شدن هم داد
      از شما دور شدن, زار شدن هم دارد
      هرکه از چشم بی افتاد, محلش ندهند
      عبد آلوده شدن, خوار شدن هم دارد
      عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

      دیدگاه


        #4
        پاسخ : هدر ++C ماژول N96LCD

        نوشته اصلی توسط 011
        اگر نیاز به یک برنامه ی اجرایی (exe) نیز داشتی می تونی روی من نیز حساب کنی
        مثلا کد کردن عکس و ...
        من خودم ی برنامه نوشتم و تو انجمنم گذاشتم ولی مثل این که روی همه سیستما اجرا نمیشه. با ویژوال استودیو نوشتم ولی مثلی باید یسری نرم افزار جانبی هم رو سیتما نصب بشه.
        من فایلای dll مورد نیاز رو گذاشتم ولی بازم رو بعضی از سیستما کار نمیکنه. نمیدونمم چرا :sad:
        زندگی یعنی امید و حرکت
        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
        سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

        دیدگاه


          #5
          پاسخ : پاسخ : هدر ++C ماژول N96LCD

          نوشته اصلی توسط علی ایمانی فر
          من خودم ی برنامه نوشتم و تو انجمنم گذاشتم ولی مثل این که روی همه سیستما اجرا نمیشه. با ویژوال استودیو نوشتم ولی مثلی باید یسری نرم افزار جانبی هم رو سیتما نصب بشه.
          من فایلای dll مورد نیاز رو گذاشتم ولی بازم رو بعضی از سیستما کار نمیکنه. نمیدونمم چرا :sad:
          من یک نمونه برای شرکت نوشتم
          مدل رنگش 565
          همه ی فرمت های عکس را نیز پوشش می داد
          ولی چون کدش را برای خودم می خواستم هنوز کامل نشده ولی کاره خودم را راه انداخت
          من به زبان c# نوشته بودم و از کتابخانه ی bitmap استفاده کردم بدون dll اضافی
          دکتر چمران در 1311 در تهران متولد شد
          وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
          او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

          دیدگاه


            #6
            پاسخ : پاسخ : هدر ++C ماژول N96LCD

            نوشته اصلی توسط علی ایمانی فر
            من خودم ی برنامه نوشتم و تو انجمنم گذاشتم ولی مثل این که روی همه سیستما اجرا نمیشه. با ویژوال استودیو نوشتم ولی مثلی باید یسری نرم افزار جانبی هم رو سیتما نصب بشه.
            من فایلای dll مورد نیاز رو گذاشتم ولی بازم رو بعضی از سیستما کار نمیکنه. نمیدونمم چرا :sad:
            من تصمیم دارم یکیشو با C++ بنویسم. اگه با C++ باشه این مشکلات پیش نمیاد. :smile:
            غفلت از یار, گرفتار شدن هم داد
            از شما دور شدن, زار شدن هم دارد
            هرکه از چشم بی افتاد, محلش ندهند
            عبد آلوده شدن, خوار شدن هم دارد
            عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

            دیدگاه


              #7
              پاسخ : پاسخ : هدر ++C ماژول N96LCD

              نوشته اصلی توسط mohammadali1375
              من تصمیم دارم یکیشو با C++ بنویسم. اگه با C++ باشه این مشکلات پیش نمیاد. :smile:
              ربطی به C یا C++ بودن نداره.
              ماله منم C++ هست و از کلاس ها استفاده کردم
              ولی فک کنم net framwork باید کنارش نصب بشه تا کار کنه
              زندگی یعنی امید و حرکت
              کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
              سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
              برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
              به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

              دیدگاه


                #8
                پاسخ : پاسخ : پاسخ : هدر ++C ماژول N96LCD

                نوشته اصلی توسط علی ایمانی فر
                ربطی به C یا C++ بودن نداره.
                ماله منم C++ هست و از کلاس ها استفاده کردم
                ولی فک کنم net framwork باید کنارش نصب بشه تا کار کنه
                وقتی می خواهید بسازید روی پروژه داخل برنامه وارد تنظیمات می شوید و می توانید یکسری از کارها را در آنجا انجام دهید.
                مثلا استفاده از framwork ورژن فلان و آیکن و ....
                دکتر چمران در 1311 در تهران متولد شد
                وی در زمان اقامت در آمریکا انجمن اسلامی آمریکا را تأسیس کرد که منجر به قطع بورسیه وی توسط شاه شد.
                او با اینکه یکی از دانشمندان مطرح آمریکا به حساب می آمد بدون توجه به مدرک به مصر رفت و آموزش نظامی دید.

                دیدگاه


                  #9
                  پاسخ : پاسخ : پاسخ : هدر ++C ماژول N96LCD

                  نوشته اصلی توسط علی ایمانی فر
                  ربطی به C یا C++ بودن نداره.
                  ماله منم C++ هست و از کلاس ها استفاده کردم
                  ولی فک کنم net framwork باید کنارش نصب بشه تا کار کنه
                  خوب C++ باشه که .net نمیخواد :-?? با C++.net نوشتید ؟
                  غفلت از یار, گرفتار شدن هم داد
                  از شما دور شدن, زار شدن هم دارد
                  هرکه از چشم بی افتاد, محلش ندهند
                  عبد آلوده شدن, خوار شدن هم دارد
                  عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                  دیدگاه


                    #10
                    پاسخ : پاسخ : پاسخ : هدر ++C ماژول N96LCD

                    نوشته اصلی توسط mohammadali1375
                    خوب C++ باشه که .net نمیخواد :-?? با C++.net نوشتید ؟
                    نه با خود C++ نوشتم ولی میگم که نمیدونم دلیلش چیه چون فایلای dll که لازم داره هم کنارش گذاشتم ولی جواب نمیده. شاید net framwork بخاد یا چیز دیگه اگه میدونستم که حلش میکردم :icon_razz:
                    زندگی یعنی امید و حرکت
                    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                    سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                    دیدگاه


                      #11
                      پاسخ : هدر ++C ماژول N96LCD

                      من که تابه حال تو کیل نتونستم ++C بنویسم.هیچ کدام از دستورات رو نمیشناسه.چرا؟تنطیمات خاصی داره؟

                      دیدگاه


                        #12
                        پاسخ : هدر ++C ماژول N96LCD

                        نوشته اصلی توسط D.S
                        من که تابه حال تو کیل نتونستم ++C بنویسم.هیچ کدام از دستورات رو نمیشناسه.چرا؟تنطیمات خاصی داره؟
                        ی برنامه نمونه پیوست کردم. خیلی ساده هست و میشه گفت خبری از کلاس ها و ... هم نیست فقط برنامش با فرمت cpp ذخیره شده که کامپایلر میفهمه که cpp هست
                        راستی فک کنم بحث کاملا داره منحرف میشه از مسیر اصلیش
                        فایل های پیوست شده
                        زندگی یعنی امید و حرکت
                        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                        سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                        دیدگاه


                          #13
                          پاسخ : هدر ++C ماژول N96LCD

                          عرض کنم خدمت دوستان عزیز که برنامه هایی که می نویسید
                          به احتمال خیلی زیاد برنامه نصب کننده می خواد و اینجوری نیست که اگر نیاز به یه فایل dll یا .. داشت بزاری کنارش
                          اکثر dll ها نیاز به رجیستر شدن دارند
                          موفق باشید
                          همیشه به یاد خدا باش !

                          دیدگاه


                            #14
                            پاسخ : هدر ++C ماژول N96LCD

                            این هم اولین پروژه نمونه :smile:

                            نمایش تصویر - کامپایلر IAR - نسخه 1 هدر ++C :



                            دانلود از پرشین گیگ

                            لینک کمکی
                            غفلت از یار, گرفتار شدن هم داد
                            از شما دور شدن, زار شدن هم دارد
                            هرکه از چشم بی افتاد, محلش ندهند
                            عبد آلوده شدن, خوار شدن هم دارد
                            عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                            دیدگاه


                              #15
                              پاسخ : هدر ++C ماژول N96LCD

                              و یه پروژه نمونه دیگه :read:

                              ساعت عقربه ای - کامپایلر IAR - نسخه 1 هدر ++C :



                              دانلود از پرشین گیگ

                              لینک کمکی
                              غفلت از یار, گرفتار شدن هم داد
                              از شما دور شدن, زار شدن هم دارد
                              هرکه از چشم بی افتاد, محلش ندهند
                              عبد آلوده شدن, خوار شدن هم دارد
                              عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                              دیدگاه

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