اطلاعیه

Collapse
No announcement yet.

راه اندازی LCD N96 (رنگی با وضوح 240*320)

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

    #91
    پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

    نوشته اصلی توسط Foad P
    حالا من با آزمون و خطا اومدم بعد از خوندن x و y یکم مقدارشونو کم و زیاد کردم که تقریبا نزدیک به جاییه که تاچ شده
    مشکل اینجاست که وقتی دارم تاچ رو میکشم که یه خط بکشه وسطش یکی دوجا رو چاپ نمیکنه ، یا اینکه یهو وسسط خط میپره یجا دیگه یه نقطه میکشه .
    اینو باید چیکار کرد ؟
    میتونید اصلا از آی سی تاچ استفاده کنید خیلی دقیق و خوبه آقا هادی تو کارش استفاده کرده من با adc هم جواب گرفتم اما نمیدونم دلیل مشکل شما چیه

    دیدگاه


      #92
      پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

      با سلام، :bye

      توی خوندن تاچ اسکرین از طریق ADC میکرو باید این روال رو دنبال کنی ( با فرض سخت افزار درست و ADC ست شده )

      [glow=red,2,300]خوندن مقدار موقعیت X[/glow]
      1 - خط X+ رو صفر کنی
      2 - خط X- رو یک کنی
      3 - خط Y+ رو ورودی و بدون Pullup کنی تا High-Impedance بشه
      4 - خط Y- رو ورودی و بدون Pullup کنی تا High-Impedance بشه
      5 - مقدار موقعیت X رو از Y+ با ADC بخونی

      [glow=red,2,300]خوندن مقدار موقعیت Y[/glow]
      1 - خط Y+ رو صفر کنی
      2 - خط Y- رو یک کنی
      3 - خط X+ رو ورودی و بدون Pullup کنی تا High-Impedance بشه
      4 - خط X- رو ورودی و بدون Pullup کنی تا High-Impedance بشه
      5 - مقدار موقعیت Y رو از X+ با ADC بخونی

      با دیدن کد برنامت، به نظرم اومد شما این روال رو طی نمیکنی.

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

      یه سری هم به تاپیک زیر بزن، یه روتین با امکانات کامل برای این کار، با کمی توضیحات هست....
      TouchADC : و اما در نهایت، توابع شیرین Touch-Pad با استفاده از ADC میکرو با قابلیت کالیبراسیون و ذخیره در eeprom میکرو برای روز مبادا !!! دقتش در حد خیلی قابل قبول برای این LCD هستش و سه تا روتین نمونه براش ارائه کردم.
      توجه کنید که از مداد معمولی با نوک نچندان تیز استفاده کنید و موقع کالیبره کردن هم مداد رو نه با فشار زیاد و نه کم، بلکه با فشار مناسب استفاده کنید. اگر قبلا کالیبره شده باشه، چند ثانیه وقت میده که با تاچ کردن صفحه کالیبره مجدد انجام بشه و در غیر اینصورت از مقادیر ذخیره شده استفاده میکنه.....
      روی تاچ اون طرفیه که کابل فلتش رنگش سیاه یا قهوه ای سوخت هستش. ( نه سمت براق و طلائی )
      ممکنه بدلیل نحوه نصب تاچ پد روی LCD ( فلت به سمت بالا و یا پائین و یا انواع دیگرش، فلت در سمت چپ و یا راست ) لازم باشه توی روتین Touch_VAL تغییراتی اعمال کنید. یعنی صفر و یک اعمال شده به X+ و X- و یا Y+ و Y- رو تغییر بدید. و در هر صورت، پایه های X+ و Y+ با PullUp 100 کیلو اهمی به ADC متصل میشن ( اصلا نیازی به تغییرات سخت افزاری نداره ) لطفا یه نگاهی به هدر فایل Touch بندازین.....
      ( البته با WinAVR هستش، ولی هم بهت ایده میده و هم اینکه تبدیل کردنش به CV هیچ کاری نداره! )

      http://www.eca.ir/forum2/index.php?topic=51530.0
      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

      Sh_Nourbakhsh@Yahoo.com

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

      دیدگاه


        #93
        پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

        برای نمایش عکس روی LCD باید چکار کرد ؟
        توی سایت یه برنامه بود که نوشته بود از اون استفاده کنیم و خروجی رو اینجوری میداد و گفته بود سطر اول طول و عرض تصویر رو بدیم ، خروجی من این شده :
        const unsigned short name[] =
        {
        300,200,
        0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
        0xFFFF,0xFFFF,0xFFDF,0xE6FB,0xD659,0xDEBA,0xF7BE,0 xFFFF,
        0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
        0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
        0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
        .
        .

        حالا با وجود اینکه تابع write_pic یک int* میگیره من باید چجوری اینکار رو با این خروجی که دارم بکنم ؟
        گفته که پارامترهای اول همان طول و عرض تصویره ! اما سومی ..
        void lcd_write_pic(unsigned int x,unsigned int y,flash unsigned int *pointer)

        دیدگاه


          #94
          پاسخ : پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

          نوشته اصلی توسط Foad P
          برای نمایش عکس روی LCD باید چکار کرد ؟
          توی سایت یه برنامه بود که نوشته بود از اون استفاده کنیم و خروجی رو اینجوری میداد و گفته بود سطر اول طول و عرض تصویر رو بدیم ، خروجی من این شده :
          const unsigned short [glow=red,2,300]name[/glow][] =
          {
          300,200,
          0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
          0xFFFF,0xFFFF,0xFFDF,0xE6FB,0xD659,0xDEBA,0xF7BE,0 xFFFF,
          0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
          0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
          0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0 xFFFF,
          .
          .

          حالا با وجود اینکه تابع write_pic یک int* میگیره من باید چجوری اینکار رو با این خروجی که دارم بکنم ؟
          گفته که پارامترهای اول همان طول و عرض تصویره ! اما سومی ..
          void lcd_write_pic(unsigned int x,unsigned int y,flash unsigned int *pointer)
          سومی هم همون name هست که بالا هایلایت کردم.....
          البته، یادت نره که اول فایل main باید هدر فایل تصویر رو include کنی :biggrin:
          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

          Sh_Nourbakhsh@Yahoo.com

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

          دیدگاه


            #95
            پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

            ممنون :smile:
            حالا توی صدا زدن تابع باید توی x و y بدم 0و0 ؟ یا اندازه ی تصویر ؟

            من وقتی عکس رو تبدیل میکنم حدود 5000 خط کد میشه اما میگه mega32 نمیتونه این قدر مموری داشته باشه :sad:
            با mega32 چطوری میشه ؟

            دیدگاه


              #96
              پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

              نوشته اصلی توسط Foad P
              ممنون :smile:
              حالا توی صدا زدن تابع باید توی x و y بدم 0و0 ؟ یا اندازه ی تصویر ؟

              من وقتی عکس رو تبدیل میکنم حدود 5000 خط کد میشه اما میگه mega32 نمیتونه این قدر مموری داشته باشه :sad:
              با mega32 چطوری میشه ؟
              خوب، حتما تصویرت خیلی بزرگه! قبلش تبدیلش کن به اندازه LCD...
              خودت حساب کن، یه تصویر 320 در 240 که تمام رنگی باشه، میشه 320*240*16

              برای مگا 32 تنها راه، استفاده از تصویر BMP و MMC هست، تازه اونم با مکافات.....
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

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

              دیدگاه


                #97
                پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                سلام بروبچ باحال ECA!

                این LCD N96 چینی که تو فروشگاه سایت هستش؛ از همون مدلیه که تو PDF پست اول معرفی شده؟ (آخه تو آموزش گفته که باید 37پایه باشه اما من ماجول lcd سایت رو خریدم که 29تا پایه ازش بیرون اومده، البته من یه حدسی میزنم: این همون 37پایه است اما پایه های تکراریش یکی شده-مثلا به حای 3تا vcc و 2تا گراند، از هر کدوم یکی بیرون آورده شده و به همین ترتیب- این حدس درسته؟)
                با تشکر...
                اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                دیدگاه


                  #98
                  پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                  سلام بابا برقی خوبین : :smile:
                  میخواستم جواب بدم تشکر کردم یکی طلب من :icon_razz: :icon_razz:دقیقا" این چیزی که گفتین درسته یعنی پایه ها از داخل برد به هم ارتباط دارند
                  موفق باشی :nice:
                  حضرت علی(ع):
                  أَشرَفُ الخَلاَئِقِ اَلوَفَا بِالعَهد.
                  شریفترین خصلتها وفاى به عهد است.

                  دیدگاه


                    #99
                    پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                    سلام دوستان!
                    ما که ترکیدیم اما این LCD راه نیفتاد!!
                    مدار رو طبق شماتیک داخل pdf پست اول بستم، حواسم به jtag هم هست(disable کردمش)، از lcd داخل فروشگاه استفاده می کنم(بردش سبز رنگه، یه ماهی میشه گرفتمش)، اتصالات رو چک کردم، همه چی برقراره
                    دیگه نمیدونم چه مشکلی میتونه داشته باشه؟ (اون مثال example پست 12 رو هم تست کردم بازم نشد)
                    a- آیا برنامه زیر ایرادی داره؟ چیزی رو جا انداختم؟
                    [glow=red,2,300]چندتا سوال:[/glow]
                    1- این دیفاین
                    #define LCD_RS_PORT PORTB
                    و چندتای قبل و بعدش به چه دردی میخوره؟ هیچ جای برنامه ازش استفاده نشده؟؟!

                    2- مگه نباید پورتهایی که برنامه ازشون استفاده میکنه رو واسش تعریف کنیم؟(از نوع وردی-خروجی منظورمه؟ مثلا بنویسیم: DDRB=0XFF و...؟)

                    3- آیا وقتی فقط VCC و GND این LCD رو متصل می کنیم، آیا LCD باید روشن بشه و حداقل یه صفحه سفید نشون بده یا نه؟(با فرض اینکه بقیه پایه هاش آزادن و به میکرو متصل نیست)

                    4- lcd داخل فروشگاه فقط پایه آند LEDها رو بیرون آورده و کاتدهاشون رو ظاهرا خودش از داخل زمین کرده، داخل شماتیک گفته باید آند رو با یک مقاومت 1اهم به 3.3ولت متصل کرد، یعنی پتانسیومتر لازم نیست؟(بعضی جاها هم دیدم که آند رو مستقیم به VCC وصل کردن)

                    5- من از mega16a استفاده می کنم(که تغذیش 5ولت فیکس هستش) این مشکلی برای lcd پیش نمیاره؟(که تغذیش 3.3ولت هست)

                    ** حدودا تمام پست های این تاپیک ور خوندم (یعنی این که بدون سرچ سوال نپرسیدم)
                    @@ ببخشید اگه سوالام یکم زیاد شد و با تشکر قبلی از شما که وقت میذارید و جواب میدید...


                    اینم کد یکی از برنامه هایی که تست کردم(lcd حتی روشن هم نمیشه و جریانی هم نمیکشه):


                    کد:
                    #include <mega16.h>
                    #include <delay.h>
                    
                    #define PORTRAIT
                    #define LCD_RST_DDR   DDRB
                    #define LCD_RST_PORT  PORTB
                    #define LCD_RST_PIN    0
                    #define LCD_RS_DDR   DDRB
                    #define LCD_RS_PORT  PORTB
                    #define LCD_RS_PIN    1
                    #define LCD_CS_DDR   DDRB
                    #define LCD_CS_PORT  PORTB
                    #define LCD_CS_PIN    2
                    #define LCD_RD_DDR   DDRB
                    #define LCD_RD_PORT  PORTB
                    #define LCD_RD_PIN    3
                    #define LCD_WR_DDR   DDRB
                    #define LCD_WR_PORT  PORTB
                    #define LCD_WR_PIN    4
                    #define LCD_DATAPORT_MSB_DDR     DDRC
                    #define LCD_DATAPORT_MSB_PORT    PORTC
                    #define LCD_DATAPORT_MSB_PIN      PINC
                    #define LCD_DATAPORT_LSB_DDR     DDRD
                    #define LCD_DATAPORT_LSB_PORT    PORTD
                    #define LCD_DATAPORT_LSB_PIN      PIND   
                                 
                    #define LCD_CONTROLPORT_DDR     DDRB
                    #define LCD_CONTROLPORT_PORT    PORTB
                    #define LCD_CONTROLPORT_PIN      PINB      
                    
                    
                    
                    #include <tftlcd_functions.h>
                    
                    void main()
                    { lcd_init();
                    lcd_gotoxy(0,0);
                    
                    while(1)
                    { 
                    
                    lcd_clear_screen();      
                    delay_ms(300);
                    lcd_background_color(0xF800);
                    delay_ms(700);
                    
                    lcd_putchar('D',0x001F ,0,0x0000);
                    delay_ms(2500);
                    lcd_background_color(0x07FF);
                    lcd_draw_line(160,80,230,140,0x001F);
                    delay_ms(1000);
                    lcd_gotoxy(100,100);
                    lcd_putsf("This Is a Test!",0xF800,1,0x0000);
                    delay_ms(1000);
                    }
                    }
                    اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                    دیدگاه


                      پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                      با سلام چون تغذیه lcd 3.3 ولته باید تغذیه میکرو را 3.3 ولت بدی اگه 5 بدی فکر کنم میسوزه

                      دیدگاه


                        پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                        نوشته اصلی توسط زوار
                        با سلام چون تغذیه lcd 3.3 ولته باید تغذیه میکرو را 3.3 ولت بدی اگه 5 بدی فکر کنم میسوزه
                        من یه بار به 5 ولت زدم طوری نشد .

                        - lcd داخل فروشگاه فقط پایه آند LEDها رو بیرون آورده و کاتدهاشون رو ظاهرا خودش از داخل زمین کرده، داخل شماتیک گفته باید آند رو با یک مقاومت 1اهم به 3.3ولت متصل کرد، یعنی پتانسیومتر لازم نیست؟(بعضی جاها هم دیدم که آند رو مستقیم به VCC وصل کردن)
                        منم همین مشکل رو داشتم و همین ال سی دی سایت رو هم داشتم . شما نباید مقاومت بذاربد و مستقیم آند رو به vcc 3.3 ولتی وصل کنید . به احتمال 90 درصد مشکلتون همین هست . از من که همین بود

                        دیدگاه


                          پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                          ممنون بچه ها
                          اگه سوالای 1و2و3 رو هم جواب میدادین که خیلی خوب می شد:

                          - این دیفاین
                          #define LCD_RS_PORT PORTB
                          و چندتای قبل و بعدش به چه دردی میخوره؟ هیچ جای برنامه ازش استفاده نشده؟؟!

                          2- مگه نباید پورتهایی که برنامه ازشون استفاده میکنه رو واسش تعریف کنیم؟(از نوع وردی-خروجی منظورمه؟ مثلا بنویسیم: DDRB=0XFF و...؟)

                          3- آیا وقتی فقط VCC و GND این LCD رو متصل می کنیم، آیا LCD باید روشن بشه و حداقل یه صفحه سفید نشون بده یا نه؟(با فرض اینکه بقیه پایه هاش آزادن و به میکرو متصل نیست)

                          راستی اون برنامه که نوشتم چطور؟ ایراد داشت؟؟
                          اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                          دیدگاه


                            پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                            نوشته اصلی توسط ☺بابابرقی☺
                            ممنون بچه ها
                            اگه سوالای 1و2و3 رو هم جواب میدادین که خیلی خوب می شد:

                            - این دیفاین
                            #define LCD_RS_PORT PORTB
                            و چندتای قبل و بعدش به چه دردی میخوره؟ هیچ جای برنامه ازش استفاده نشده؟؟!

                            2- مگه نباید پورتهایی که برنامه ازشون استفاده میکنه رو واسش تعریف کنیم؟(از نوع وردی-خروجی منظورمه؟ مثلا بنویسیم: DDRB=0XFF و...؟)

                            3- آیا وقتی فقط VCC و GND این LCD رو متصل می کنیم، آیا LCD باید روشن بشه و حداقل یه صفحه سفید نشون بده یا نه؟(با فرض اینکه بقیه پایه هاش آزادن و به میکرو متصل نیست)

                            راستی اون برنامه که نوشتم چطور؟ ایراد داشت؟؟

                            خب دوستان!
                            جواب دو تا سوال اول ور خودم فهمیدم، هه هه! اما به جاش دوتا سوال دیگه میپرسم:

                            1- اگه بخوام نوع دقیق و درایور LCD رو بفهمم چه دستوری رو باید به LCD بفرستم؟(ظاهرا یه دستورایی واسه اینکار هست، اگه بنویسیدش ممنون میشم)
                            2- دیتاشیت این LCD رو از کجا میتونم گیر بیارم؟(لینکی،چیزی؟!)
                            3-آیا وقتی فقط VCC و GND این LCD رو متصل می کنیم، آیا LCD باید روشن بشه و حداقل یه صفحه سفید نشون بده یا نه؟(با فرض اینکه بقیه پایه هاش آزادن و به میکرو متصل نیست)

                            راستی اون برنامه که دو-سه پست قبل نوشتم چطور؟ ایراد داشت؟؟
                            اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                            دیدگاه


                              پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                              یاااااااااااااافتم :wow:

                              به طور کاملا اتفاقی متوجه شدم که برخی اتصالات کاملا برقرار نیست و 2باره باید لحیمکاری بشه
                              دیتاشیت رو هم پیدا کردم :nice:
                              اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                              دیدگاه


                                پاسخ : راه اندازی LCD N96 (رنگی با وضوح 244*320)

                                با سلام،

                                با اینا میتونی نوع کنترلر رو مشخص کنی که معمولا اول روتین LCDInit هست....

                                LCDOutIns(LCD_INS_START_OSC);
                                driver_code = LCDInDat();
                                مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                                Sh_Nourbakhsh@Yahoo.com

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

                                دیدگاه

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