اطلاعیه

Collapse
No announcement yet.

راه اندازی ال سی دی n96 با sam7s64

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

    راه اندازی ال سی دی n96 با sam7s64

    با سلام من این برنامه زیر را نوشتم برای تست!
    /* Automatic Code Generator For N96 LCD
    Version : beta
    www.ECA.ir
    2011/8/10 21:5
    Platform : ARM
    Microcontroller : AT91SAM7S64
    Data PORT : PORTA
    Data PORT Offset: 15
    Control PORT : PORTA
    RS PIN : 17
    WR PIN : 19
    RD PIN : 20
    CS PIN : 18
    RST PIN: 16
    */

    #include <AT91SAM7S64.H>
    #define TFTLCD_DATAPORT_A
    #define TFTLCD_DATAPORT_OFFSET 15
    #define TFTLCD_CONTROLPORT_A
    #define TFTLCD_RS 17
    #define TFTLCD_WR 19
    #define TFTLCD_RD 20
    #define TFTLCD_CS 18
    #define TFTLCD_RST 16
    #include <delay.h>
    #define PORTRAIT
    #include <tftlcd_functions.c>
    #include <tftlcd_functions.h>
    #include "images.h"


    int main (void)
    {
    tftlcd_init();
    tftlcd_write_pic(0, 0, image1);
    while(1);
    }
    ولی ارور های زیر را میده!!!
    Build target 'Target 1'
    compiling tftlcd_functions.c...
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(131 ): error: #20: identifier "_TFTLCD_CONTROLPORT_CODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(131 ): error: #20: identifier "TFTLCD_RS" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(132 ): error: #20: identifier "_TFTLCD_DATAPORT_CODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(132 ): error: #20: identifier "TFTLCD_DATAPORT_OFFSET" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(133 ): error: #20: identifier "_TFTLCD_DATAPORT_SODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(134 ): error: #20: identifier "TFTLCD_CS" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(135 ): error: #20: identifier "_TFTLCD_CONTROLPORT_SODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(145 ): error: #20: identifier "_TFTLCD_DATAPORT_SODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(145 ): error: #20: identifier "TFTLCD_DATAPORT_OFFSET" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(146 ): error: #20: identifier "_TFTLCD_CONTROLPORT_CODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(146 ): error: #20: identifier "TFTLCD_CS" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(147 ): error: #20: identifier "_TFTLCD_CONTROLPORT_SODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(156 ): error: #20: identifier "_TFTLCD_DATAPORT_ODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(156 ): error: #20: identifier "TFTLCD_DATAPORT_OFFSET" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(157 ): error: #20: identifier "_TFTLCD_CONTROLPORT_CODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(157 ): error: #20: identifier "TFTLCD_RD" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(158 ): error: #20: identifier "_TFTLCD_CONTROLPORT_SODR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(158 ): error: #20: identifier "TFTLCD_WR" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(159 ): error: #20: identifier "TFTLCD_CS" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(160 ): error: #20: identifier "_TFTLCD_DATAPORT_PDSR_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(164 ): error: #20: identifier "_TFTLCD_DATAPORT_OER_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(268 ): error: #20: identifier "AT91C_PMC_PCER" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(268 ): error: #20: identifier "_TFTLCD_DATAPORT_ID_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(268 ): error: #20: identifier "_TFTLCD_CONTROLPORT_ID_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(269 ): error: #20: identifier "_TFTLCD_DATAPORT_PER_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(269 ): error: #20: identifier "TFTLCD_DATAPORT_OFFSET" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(270 ): error: #20: identifier "_TFTLCD_DATAPORT_OER_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(271 ): error: #20: identifier "_TFTLCD_DATAPORT_PUER_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(272 ): error: #20: identifier "_TFTLCD_CONTROLPORT_PER_" is undefined
    C:\Keil\ARM\INC\Atmel\SAM7S\tftlcd_functions.c(272 ): error: #20: identifier "TFTLCD_RST" is undefined
    Target not created

    من تقریبا میشه گفت در ارم تازه کارم میشه کمکم کنید ممنون میشم!!1 :cry2: :cry: :angry:

    تشکر لازمه! دکمه رو فشار بده ديگه!!
    موفق باشيدددددد!!

    #2
    پاسخ : راه اندازی ال سی دی n96 با sam7s64

    آقا یعنی از این همه ادم هیچکس جواب سوال منو بلد نیست؟؟؟
    من خودم حداقل 20 نفر آرم کار دیدم که در تاپیک ال سی دی n96 شرکت کرده بودن!
    خوب جواب بدین یه کمکی هم به من شه کلافه شدم الان 2 روزه دارم باهاش ور می رم!
    :angry:
    تشکر لازمه! دکمه رو فشار بده ديگه!!
    موفق باشيدددددد!!

    دیدگاه


      #3
      پاسخ : راه اندازی ال سی دی n96 با sam7s64

      سلام

      شما فایل tftlcd_functions.c رو در برنامه include نکن ، از طریق تنظیمات پروژه به فایل های پروژه ات اضافه کن ببین چی میشه
      دستوراتت رو هم جابجا کن ببین چی میشه مثلا PORTRAIT رو بیار اول یا ...

      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

      دیدگاه


        #4
        پاسخ : راه اندازی ال سی دی n96 با sam7s64

        #define TFTLCD_DATAPORT_A
        #define TFTLCD_DATAPORT_OFFSET 15
        #define TFTLCD_CONTROLPORT_A
        #define TFTLCD_RS 17
        #define TFTLCD_WR 19
        #define TFTLCD_RD 20
        #define TFTLCD_CS 18
        #define TFTLCD_RST 16
        شما اومدیدن پایه 15 به بعد رو دیتا پورت تعریف کردید که از D1 تا D17 به ترتیب از PA15 تا PA31 وصل کنید
        بعد زیرش اومدید پایه هایی رو که واسه دیتا پورت تعریف کردین واسه کنترل پرت هم گذاشتین!!!!!!!!!! :eek:
        شما سخت افزارو چجوری بستین؟ :eek:

        دیدگاه


          #5
          پاسخ : راه اندازی ال سی دی n96 با sam7s64

          اول اینکه پستی که به ATMEL مربوطه رو تو بخش اتمل بزنی زودتر جواب میگیری.

          پایه ها با هم تداخل دارن ولی این باعث ایجاد ارور نمیشه.
          کدهایی که برنامه N96-LCD-Code-Generator درست میکنه رو عوض نکن .
          #include <tftlcd_functions.h> رو خودت اضافه کردی.

          دیدگاه


            #6
            پاسخ : راه اندازی ال سی دی n96 با sam7s64

            با سلام!
            ممنون از توجهتون! :mrgreen:
            این برنامه درسته؟؟؟
            #include <AT91SAM7S64.h>
            #include "delay.h"

            #define PORTRAIT
            #define TFTLCD_DATAPORT_A
            #define TFTLCD_DATAPORT_OFFSET 0
            #define TFTLCD_CONTROLPORT_A
            #define TFTLCD_RST 16
            #define TFTLCD_RS 17
            #define TFTLCD_CS 18
            #define TFTLCD_WR 19
            #define TFTLCD_RD 20
            #include "tftlcd_functions.c"

            int main (viod)
            {
            tftlcd_init();

            tftlcd_draw_line(5,5,180,120,RED);
            tftlcd_draw_line(10,5,185,120,GREEN);
            tftlcd_draw_line(15,5,190,120,BLUE);

            tftlcd_draw_rectangle(160,20,250,120,0,YELLOW);
            tftlcd_draw_rectangle(165,25,245,115,0,PURPLE);
            tftlcd_draw_rectangle(170,30,240,110,1,BLUE);

            tftlcd_draw_circle(70,150,50,0,GREEN);
            tftlcd_draw_circle(90,150,50,1,PURPLE);

            delay_ms(10000);


            while(1)
            {
            tftlcd_draw_rectangle(0,0,319,239,1,RED);
            delay_ms(1000);
            tftlcd_draw_rectangle(0,0,319,239,1,GREEN);
            delay_ms(1000);
            tftlcd_draw_rectangle(0,0,319,239,1,BLUE);
            delay_ms(1000);
            };
            }
            به این ارور نمیده فقط 2تا وارنینگ میده!
            ولی ال سی دی روشن نمیشه سفیده!!!!
            در ضمن این مجله ای که گفتید pmm شماره چنده؟؟؟
            میشه با برنامتون اپلود کنید؟؟؟
            بعد من از sam-ba استفاده می کنم؟؟؟ مشکلی نداره؟؟؟؟ کریستال مهم نیست؟ چون ظاهرا با sam-ba فقط باید 18.xxxxx باشه!!!1 :cry:
            تشکر لازمه! دکمه رو فشار بده ديگه!!
            موفق باشيدددددد!!

            دیدگاه


              #7
              پاسخ : راه اندازی ال سی دی n96 با sam7s64

              اوه به یه نکته برخوردم وقتی debug می زنم توی command مینویسه:watch dog reset occured!!!! این یعنی واچ داگ روشنه و داره ریست میکنه؟؟؟؟ چیکارش کنم؟؟؟ چجوری فیز بیت هاشو باید عوض کنم با sam-ba نمیشه؟؟؟ :angry:
              تشکر لازمه! دکمه رو فشار بده ديگه!!
              موفق باشيدددددد!!

              دیدگاه


                #8
                پاسخ : راه اندازی ال سی دی n96 با sam7s64

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

                پایه ها با هم تداخل دارن ولی این باعث ایجاد ارور نمیشه.
                کدهایی که برنامه N96-LCD-Code-Generator درست میکنه رو عوض نکن .
                #include <tftlcd_functions.h> رو خودت اضافه کردی.
                آقا لطفا ادامه تاپیک رو در اینجا بدید!
                http://www.eca.ir/forum2/index.php?topic=53795.0
                در بخش atmel !!!! :cry2:
                آقا در ضمن من چند تا led به پایه ها کنترل وصل کردم چشمک نمی زنند!!! فک کنم اصلا برنامه اجرا نمیشه!!! راه حل بدید کمکککککککککککککک!!!! :angry:
                تشکر لازمه! دکمه رو فشار بده ديگه!!
                موفق باشيدددددد!!

                دیدگاه


                  #9
                  پاسخ : راه اندازی ال سی دی n96 با sam7s64

                  اگه به همنی برنامه LED ببندین شاید نتونین چشمک زدنشو ببینین چون فرکانس خیلی بالا هست.
                  از بخش مثالهای هدربرد یه برنامه چشمک زن هست که اول اونو امتحان کنین ببینین بردتون کار میکنه یا نه.
                  http://www.eca.ir/forum2/index.php?topic=31570.0

                  دیدگاه


                    #10
                    پاسخ : راه اندازی ال سی دی n96 با sam7s64

                    من الان یه چیزی رو متوجه شدم اینکه:
                    ال ای دی ها هر چند وقت یک بار چشمک می زنند!
                    و در دیباگ هم اروره واچ داگ میده!!!
                    یعنی واچ داگ داره کار میکنه من هرچی گشتم نتونستم بفهمم چجوری باید غیر فعالشکنم(واچ داگ رو میگم!)
                    میشه بگید چجوری باید این کار رو بکنم؟؟؟ در ضمن اینجا خیلی دیر به دیر جواب می دید میشه ایدی بدید بچتیم؟/؟ایدی من:mahan_b94@yahoo.com
                    مرسی
                    تشکر لازمه! دکمه رو فشار بده ديگه!!
                    موفق باشيدددددد!!

                    دیدگاه


                      #11
                      پاسخ : راه اندازی ال سی دی n96 با sam7s64

                      سلام

                      شما Keil رو باز کنید و به آدرس زیر بروید
                      Project/Option For Targets
                      و در تب Linker گزینه اول یعنی ... Use Memory رو تیک کنید

                      با سپاس
                      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                      دیدگاه


                        #12
                        پاسخ : راه اندازی ال سی دی n96 با sam7s64

                        هورررررررررررررررراااااااااااااااااااااااا!!!!!!!! !! :wow:
                        درست شد!
                        مشکل همون واچداگ بود!!!
                        من قربونه همتون برم!
                        مخصوصا آقای soodi مشکل اصلی رو اون حل کرد خیلی ممنونم!!!
                        میشه ایدی تونو بدیدی سوال داشتم بپرسم؟؟؟ یا منو با ایدی mahan_b94@yahoo.comاد کنید خیلی ممنون میشممم! :applause: :applause: :applause:
                        تشکر لازمه! دکمه رو فشار بده ديگه!!
                        موفق باشيدددددد!!

                        دیدگاه


                          #13
                          پاسخ : راه اندازی ال سی دی n96 با sam7s64

                          آقا حالا تاچ رو چیکار کنم؟؟
                          این برنامه رو نوشتم :
                          #include <AT91SAM7S64.h>
                          #include "lib_AT91SAM7S64.h"
                          #include "delay.h"
                          #define PORTRAIT
                          #define TFTLCD_DATAPORT_A
                          #define TFTLCD_DATAPORT_OFFSET 0
                          #define TFTLCD_CONTROLPORT_A
                          #define TFTLCD_RST 16
                          #define TFTLCD_RS 21
                          #define TFTLCD_CS 22
                          #define TFTLCD_WR 23
                          #define TFTLCD_RD 24
                          #include "tftlcd_functions.c"

                          #include "touch.h"
                          #include <stdio.h>
                          /*int main (void){
                          tftlcd_init();

                          tftlcd_draw_line(5,5,180,120,RED);
                          tftlcd_draw_line(10,5,185,120,GREEN);
                          tftlcd_draw_line(15,5,190,120,BLUE);

                          tftlcd_draw_rectangle(160,20,250,120,0,YELLOW);
                          tftlcd_draw_rectangle(165,25,245,115,0,PURPLE);
                          tftlcd_draw_rectangle(170,30,240,110,1,BLUE);

                          tftlcd_draw_circle(70,150,50,0,GREEN);
                          tftlcd_draw_circle(90,150,50,1,PURPLE);

                          delay_ms(1000);
                          tftlcd_gotoxy(2,12);
                          tftlcd_draw_rectangle(0,0,319,320,1,WHITE);
                          tftlcd_putsf("...:::HELLO:::...",RED,WHI TE,0);
                          tftlcd_gotoxy(2,9);
                          tftlcd_putsf("MahanBastani",GREEN,WHITE, 0);
                          tftlcd_gotoxy(2,10);
                          tftlcd_putsf("** Runing ARM Micro **",BLUE,WHITE,1);
                          tftlcd_gotoxy(2,11);
                          tftlcd_putsf("** tft lcd testing.... **",PURPLE,WHITE,1);
                          delay_ms(10000);

                          while(1)
                          {
                          tftlcd_draw_rectangle(0,0,319,320,1,RED);
                          delay_ms(1000);
                          tftlcd_draw_rectangle(0,0,319,320,1,GREEN);
                          delay_ms(1000);
                          tftlcd_draw_rectangle(0,0,319,320,1,BLUE);
                          delay_ms(1000);
                          tftlcd_init();
                          tftlcd_write_pic(0, 0, image1);
                          delay_ms(1000);
                          }

                          } */


                          int x1,y1,color=RED;
                          char lcd_buffer[20];

                          int main(void)
                          {

                          tftlcd_init();
                          tftlcd_draw_rectangle(0,280,239,319,1,BLACK);
                          tftlcd_draw_rectangle(2,282,38,317,1,RED);
                          tftlcd_draw_rectangle(42,282,78,317,1,GREEN);
                          tftlcd_draw_rectangle(82,282,118,317,1,BLUE);
                          tftlcd_draw_rectangle(122,282,158,317,1,WHITE);
                          delay_ms(100);

                          while(1) {

                          if (touch(&x1,&y1) == 1) {
                          sprintf(lcd_buffer,"X=%u ",x1);
                          tftlcd_gotoxy(24,18);
                          tftlcd_puts(lcd_buffer,color,BLACK,0);
                          sprintf(lcd_buffer,"Y=%u ",y1);
                          tftlcd_gotoxy(24,19);
                          tftlcd_puts(lcd_buffer,color,BLACK,0);

                          if (y1 < y_range/10) { // 10%
                          if (x1<x_range*35/100); //first 35% for Display X , Y
                          else if (x1<x_range*51/100) color = WHITE;
                          else if (x1<x_range*67/100) color = BLUE;
                          else if (x1<x_range*83/100) color = GREEN;
                          else color = RED;

                          }else tftlcd_draw_circle(240-(x1*220/x_range),315-(y1*300/y_range),5,1,color); // draw circle in touch position

                          }else tftlcd_draw_rectangle(160,280,239,319,1,BLACK); //clear X , Y
                          delay_ms(25);

                          };
                          }




                          ولی همش 4294 نشون میده و وقتی دستتو میزاری رو تاچ هیچی عدد نشون نمیده؟؟؟
                          فایل touch رو هم به صورت زیر عوض کردم:
                          // Touch.h raminmicro@gmail.com
                          // Header File for Resistive Touch Screen


                          #ifndef touch_INCLUDED_
                          #define touch_INCLUDED_

                          #define min_x 225
                          #define max_x 775
                          #define min_y 225
                          #define max_y 875

                          #define x_range (max_x - min_x)
                          #define y_range (max_y - min_y)
                          #include <AT91SAM7S64.h>
                          #include "adc.h"
                          #include <stdio.h>
                          int touch(int *x,int *y){
                          int a,b;
                          /*
                          X+ PA.17
                          y+ PA.18
                          X- PA.19
                          Y- PA.20
                          */

                          config_adc(0x04);
                          AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PIO_PA18 | AT91C_PIO_PA20);
                          AT91F_PIO_CfgInput(AT91C_BASE_PIOA, AT91C_PIO_PA17 | AT91C_PIO_PA19);
                          AT91F_PIO_SetOutput( AT91C_BASE_PIOA,AT91C_PIO_PA20);
                          AT91F_PIO_ClearOutput( AT91C_BASE_PIOA,AT91C_PIO_PA18);
                          start_adc();
                          b = read_adc(2);
                          delay_us(100);

                          config_adc(0x02);
                          AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PIO_PA17 | AT91C_PIO_PA19);
                          AT91F_PIO_CfgInput(AT91C_BASE_PIOA, AT91C_PIO_PA18 | AT91C_PIO_PA20);
                          AT91F_PIO_SetOutput( AT91C_BASE_PIOA,AT91C_PIO_PA19);
                          AT91F_PIO_ClearOutput( AT91C_BASE_PIOA,AT91C_PIO_PA17);
                          start_adc();
                          a = read_adc(1);
                          if (b<max_y+10) *y = b-min_y;
                          else b=0;
                          if(a<max_x+10) *x = a-min_x;
                          else a=0;

                          if ((a!=0)&&(b!=0))return 1;
                          else return 0;
                          }


                          #endif
                          تورو جون هری کی دوست داری راهنمایی کنید! :angry:
                          تشکر لازمه! دکمه رو فشار بده ديگه!!
                          موفق باشيدددددد!!

                          دیدگاه


                            #14
                            پاسخ : راه اندازی ال سی دی n96 با sam7s64

                            آقا ولش کنید خودم یکم ور رفتم درست شد! مرسی از همه!
                            تشکر لازمه! دکمه رو فشار بده ديگه!!
                            موفق باشيدددددد!!

                            دیدگاه

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