اطلاعیه

Collapse
No announcement yet.

خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

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

    خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

    سلام
    من با keil یک برنامه ساده برای lcd کاراکتری نوشتم که کتابخانه lcd دو تاخطا میده که نمیدونم علت چیه.لطفا راهنمایی کنید ایراد از چیه؟
    از AT91sam7s64 استفاده میکنم
    ممنونم
    فایل های پیوست شده

    #2
    پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

    هیدر هایی که استفاده کردید یکم مشکوکه !
    شما توی تایپیک زیر پروژه lcd برای 7x رو بگیرید و برنامه و هیدرشو میتونید به صورت مستقیم برای 7s هم استفاده کنید
    http://www.eca.ir/forum2/index.php?topic=50901.0
    فقط دقت کنید
    #define LCD_PORT_A
    حتما باید پورت a باشه

    دیدگاه


      #3
      پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

      نوشته اصلی توسط alireza.r
      هیدر هایی که استفاده کردید یکم مشکوکه !
      شما توی تایپیک زیر پروژه lcd برای 7x رو بگیرید و برنامه و هیدرشو میتونید به صورت مستقیم برای 7s هم استفاده کنید
      http://www.eca.ir/forum2/index.php?topic=50901.0
      فقط دقت کنید
      #define LCD_PORT_A
      حتما باید پورت a باشه
      با سلام
      این هدربرد برای تمام سری AT91sam7s میشه به کار برد؟؟؟
      PIO_ClearOutput =((1<<LCD_DB4)|(1<<LCD_DB5)|(1<< LCD_DB6)|(1<<LCD_DB7));
      if (val & 0x80)
      PIO_SetOutput =(1<<LCD_DB7) ;
      if (val & 0x40)
      PIO_SetOutput =(1<<LCD_DB6);
      if (val & 0x20)
      PIO_SetOutput =(1<<LCD_DB5);
      if (val & 0x10)
      PIO_SetOutput =(1<<LCD_DB4);
      این قسمت برنامه چی کار میکنه؟البته من با طرز کار lcd کارکتری آشنایی کامل دارم ولی نتونستم این قسمت برنامه رو خوب متوجه بشم؟؟
      ممنونم

      دیدگاه


        #4
        پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

        سلام.بله از هیدر میشه استفاده کرد اما در صورتی که LCD_PORT_A رو دیفاین کنین. به این قسمت دقت کنید
        کد:
        #ifdef  LCD_PORT_A
        #define  PIO_enable	  *AT91C_PIOA_PER 
        #define  PIO_SetOutput	  *AT91C_PIOA_SODR 
        #define PIO_ClearOutput	  *AT91C_PIOA_CODR 
        #define PIO_CfgOutput *AT91C_PIOA_OER 
        #endif
        #ifdef LCD_PORT_B
         #define  PIO_enable	  *AT91C_PIOB_PER
        #define PIO_SetOutput	    *AT91C_PIOB_SODR 
        #define PIO_ClearOutput	  *AT91C_PIOB_CODR
        #define PIO_CfgOutput *AT91C_PIOB_OER 
        #endif
        اگه شما بیاین از LCD_PORT_Aاستفاده کنیداونوقت سه تا دیفاین دیگه تعریف میشن که PIO_enable واسه تعریف کردن پایه تو حالت ورودی و خروجی هست و PIO_SetOutput برای یک کردن پابه
        PIO_ClearOutput برای ریست کردن پایه و PIO_CfgOutput برای خروجی کردن پایه.همونطور که میبینید هر کدوم از این نام ها به رجیستر مربوطه اختصاص داده شده .
        حالا این قسمتی که شما فرمودید دقیقا از همین اسم ها استفاده کرده و رجیستر هارو مقدار دهی کردی
        یک مثال ساده:
        #define LCD_DB4 5
        الان در حقیقت اسم LCD_DB4 همان مقدار 5 هست
        PIO_ClearOutput =((1<<LCD_DB4)|(1<<LCD_DB5)|(1<< LCD_DB6)|(1<<LCD_DB
        در این قسمت توی قسمت LCD_DB4 میاد یک به اندازه 5 بار به چپ شیفت داده میشه و رجیستر مربوطه باهاش or میشه(در حقیقت پایه صفر میشه)
        بقیه هم به همین صورت


        نکته: دقت کنید رو پورت b پایه هارو تعریف نکنید چون رجیستر های پورت b در 7s وجود ندارن و =error

        دیدگاه


          #5
          پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

          نوشته اصلی توسط alireza.r
          سلام.بله از هیدر میشه استفاده کرد اما در صورتی که LCD_PORT_A رو دیفاین کنین. به این قسمت دقت کنید
          کد:
          #ifdef  LCD_PORT_A
          #define  PIO_enable	  *AT91C_PIOA_PER 
          #define  PIO_SetOutput	  *AT91C_PIOA_SODR 
          #define PIO_ClearOutput	  *AT91C_PIOA_CODR 
          #define PIO_CfgOutput *AT91C_PIOA_OER 
          #endif
          #ifdef LCD_PORT_B
           #define  PIO_enable	  *AT91C_PIOB_PER
          #define PIO_SetOutput	    *AT91C_PIOB_SODR 
          #define PIO_ClearOutput	  *AT91C_PIOB_CODR
          #define PIO_CfgOutput *AT91C_PIOB_OER 
          #endif
          اگه شما بیاین از LCD_PORT_Aاستفاده کنیداونوقت سه تا دیفاین دیگه تعریف میشن که PIO_enable واسه تعریف کردن پایه تو حالت ورودی و خروجی هست و PIO_SetOutput برای یک کردن پابه
          PIO_ClearOutput برای ریست کردن پایه و PIO_CfgOutput برای خروجی کردن پایه.همونطور که میبینید هر کدوم از این نام ها به رجیستر مربوطه اختصاص داده شده .
          حالا این قسمتی که شما فرمودید دقیقا از همین اسم ها استفاده کرده و رجیستر هارو مقدار دهی کردی
          یک مثال ساده:
          #define LCD_DB4 5
          الان در حقیقت اسم LCD_DB4 همان مقدار 5 هست
          PIO_ClearOutput =((1<<LCD_DB4)|(1<<LCD_DB5)|(1<< LCD_DB6)|(1<<LCD_DB
          در این قسمت توی قسمت LCD_DB4 میاد یک به اندازه 5 بار به چپ شیفت داده میشه و رجیستر مربوطه باهاش or میشه(در حقیقت پایه صفر میشه)
          بقیه هم به همین صورت


          نکته: دقت کنید رو پورت b پایه هارو تعریف نکنید چون رجیستر های پورت b در 7s وجود ندارن و =error
          با تشکر از جواب خوبت.
          من برنامه رو اصلاح کردم ولی بازم خطا میده.این بار کتابخانه Lib_At91sam7s64 است که خطا میده.البته بگم من این کتابخانه رو دربرنامه دیگه استفاده کردم خطا نداشته ولی در این برنامه این خطا ها رو میده.
          compiling FDF.C...
          lib_AT91SAM7S64.h(194): error: #20: identifier "AT91C_AIC_SRCTYPE_HIGH_LEVEL" is undefined
          lib_AT91SAM7S64.h(1649): error: #20: identifier "AT91C_BASE_MC" is undefined
          lib_AT91SAM7S64.h(2891): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2901): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2912): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2923): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2933): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2944): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2955): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2971): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2982): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(2993): error: #20: identifier "AT91PS_PWMC" is undefined
          lib_AT91SAM7S64.h(3008): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3020): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3032): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3035): error: #20: identifier "AT91C_UDP_FEN" is undefined
          lib_AT91SAM7S64.h(3043): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3046): error: #20: identifier "AT91C_UDP_EPEDS" is undefined
          lib_AT91SAM7S64.h(3054): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3057): error: #20: identifier "AT91C_UDP_EPEDS" is undefined
          lib_AT91SAM7S64.h(3065): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3068): error: #20: identifier "AT91C_UDP_FADDEN" is undefined
          lib_AT91SAM7S64.h(3068): error: #20: identifier "AT91C_UDP_CONFG" is undefined
          lib_AT91SAM7S64.h(3077): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3079): error: #20: identifier "AT91C_UDP_FADDEN" is undefined
          lib_AT91SAM7S64.h(3079): error: #20: identifier "AT91C_UDP_CONFG" is undefined
          lib_AT91SAM7S64.h(3087): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3099): error: #20: identifier "AT91PS_UDP" is undefined
          lib_AT91SAM7S64.h(3102): error: #20: identifier "AT91C_UDP_FORCESTALL" is undefined
          lib_AT91SAM7S64.h(3110): error: #20: identifier "AT91PS_UDP" is undefined
          Target not created
          من برنامه را هم پیوست میکنم.
          فایل های پیوست شده

          دیدگاه


            #6
            پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

            با سلام.اصلا نیاز نیست شما از LIB_AT61SAM7S64 توی پروژتون استفاده کنید.میتونین حذفش کنین. اگر دوست دارین باشه از هیدر های زیر استفاده کنید(هر دو هیدر رو)
            http://www.keil.com/dd/docs/arm/atmel/sam7s/at91sam7s64.h

            http://www.4shared.com/file/xCbYxE0u/lib_AT91SAM7S64.html

            دیدگاه


              #7
              پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

              وقتی برمیدارم هدر فایل رو و کامپایل میکنم این خطاها رو میده:
              Build target 'Target 1'
              compiling FDF.C...
              lcd.h(41): error: #20: identifier "AT91C_PIOA_CODR" is undefined
              lcd.h(43): error: #20: identifier "AT91C_PIOA_SODR" is undefined
              lcd.h(54): error: #20: identifier "AT91C_PIOA_SODR" is undefined
              lcd.h(58): error: #20: identifier "AT91C_PIOA_CODR" is undefined
              lcd.h(69): error: #20: identifier "AT91C_PIOA_CODR" is undefined
              lcd.h(71): error: #20: identifier "AT91C_PIOA_SODR" is undefined
              lcd.h(84): error: #20: identifier "AT91C_PIOA_PER" is undefined
              lcd.h(85): error: #20: identifier "AT91C_PIOA_OER" is undefined
              lcd.h(89): error: #20: identifier "AT91C_PIOA_SODR" is undefined
              lcd.h(91): error: #20: identifier "AT91C_PIOA_CODR" is undefined
              FDF.C(24): warning: #1-D: last line of file ends without a newline
              Target not created

              دیدگاه


                #8
                پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

                نکنه هیدر at91sam7s64.h رو حذف کردین؟ این نباید حذف کنین فقط lib_at91sam7s64 غیر ضروری هست
                اصلا این فایل پروژتون که بی خطا کامپایل میشه
                http://www.4shared.com/rar/gYpmTKA6/LCD2.html
                میتونین lib_at91sam7s64 رو حذف کنید ببینم بازم کامپایل میشه

                دیدگاه


                  #9
                  پاسخ : خطا در برنامه راه اندازیlcd کارکتری با AT91sam7s64

                  نوشته اصلی توسط alireza.r
                  نکنه هیدر at91sam7s64.h رو حذف کردین؟ این نباید حذف کنین فقط lib_at91sam7s64 غیر ضروری هست
                  اصلا این فایل پروژتون که بی خطا کامپایل میشه
                  http://www.4shared.com/rar/gYpmTKA6/LCD2.html
                  میتونین lib_at91sam7s64 رو حذف کنید ببینم بازم کامپایل میشه
                  با سلام
                  بالاخره تونستم خطاها رو رفع کنم و راهش بندازم.ولی ایراد از هدر فایل AT91sam7s64 خود کیل بود.من هدر فایل رو دانلود کردم و کپی کردم کنار برنامه درست شد.ولی نفهمیدم هدر فایل خود کیل چه مشکلی داره که این خطاها رو میداد؟؟ واسم جالبه که بدونم؟اگه کسی دلیلش رو میدونی بگه تا ما هم بفهمیم قضیه چی بوده!!!
                  ممنونم

                  دیدگاه

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