اطلاعیه

Collapse
No announcement yet.

نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

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

    نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

    سلام دوستان.
    من می خوام از توابع آماده ATMEL برای XMEGA در IAR استفاده کنم .
    مثلا AVR1003 برای راه اندازی کلاک xmega هستش.

    اول فایل clksys_driver.c را به پروژه ADD می کنم.
    بعد فایل clksys_driver.h رو با دستور #include به ابتدای برنامه (قبل از main) اضافه می کنم .

    وقتی کامپایل می کنم تعداد زیادی Error ظاهر می شه که همشون مربوط به عبارت هایی هست که توی فایل ATxmega64A3.h تعریف شده و در جاهای مختلف ازشون استفاده شده .
    مثلا

    البته وقتی پروژه رو اجرا می کنم نرم افزار ارور زیر رو هم می ده :


    #2
    پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

    سلام
    کتابخونه avr_compiler.h رو باید قبلش اضافه کنی.
    البته من با atmel Studio کار میکنم.

    دیدگاه


      #3
      پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

      avr_compiler.h رو هم از قبل اضافه کردم و این ارور ها رو داده.

      دیدگاه


        #4
        پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

        با سلام
        داخل کامپایلر به منوی option برید و از مسیر زیر تیک قسمت مشخص شده را بزارید.

        http://up.p30day.com/images3/2013/may/15914600577268313693.png
        دکتر شريعتي:

        زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

        دیدگاه


          #5
          پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

          ممنون از راهنمایی تون .
          مشکل کاملا حل شد .

          دیدگاه


            #6
            پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

            با اجازه تون عکس رو یه جای دیگه هم پلود کردم تا یه زمان از بین نره .

            دیدگاه


              #7
              پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

              در راه اندازی ADC به کمک توابع AVR1300 به یک مشکل جدید برخورد کردم .
              در فایل adc_driver.c از تابع uint8_t SP_ReadCalibrationByte( uint8_t index ) استفاده شده که کامپایلر ارور میده .
              فکر میکنم مشکل از نحوه ADD کردن فایل اسمبلی به برنامه باشه چون توی خود فایل adc_driver.c اینطور گفته :

              کد:
              /*! \brief Function for GCC to read out calibration byte.
               *
               * \note For IAR support, include the adc_driver_asm.S90 file in your project.

              ارور هم اینه :


              Undefined external "SP_ReadCalibrationByte(uint8_t)" referrd in adc_driver.


              این هم تابع :

              کد:
              #ifdef __GNUC__
              
              /*! \brief Function for GCC to read out calibration byte.
               *
               * \note For IAR support, include the adc_driver_asm.S90 file in your project.
               *
               * \param index The index to the calibration byte.
               *
               * \return Calibration byte.
               */
              uint8_t SP_ReadCalibrationByte( uint8_t index )
              {
              	uint8_t result;
              
              	/* Load the NVM Command register to read the calibration row. */
              	NVM_CMD = NVM_CMD_READ_CALIB_ROW_gc;
               	result = pgm_read_byte(index);
              
              	/* Clean up NVM Command register. */
               	NVM_CMD = NVM_CMD_NO_OPERATION_gc;
              
              	return result;
              }
              
              #endif

              البته من در درخت پروژه فایل adc_driver_asm.S90 رو به پروژه ADD کردم.

              دیدگاه


                #8
                پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                با سلام

                برنامه دماسنج رو از سایت زیر دانلود کنید،می تونین به عنوان نمونه نحوه راه اندازی و احد adc استفاده کنین

                http://knowledgeplus.ir/electronics/XMEGA.aspx?lang=Fa
                دکتر شريعتي:

                زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

                دیدگاه


                  #9
                  پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                  من وقتی برنامه دماسنج آقای کی نژاد (همونی که گفتید) رو بدون هیچ تغییری کامپایل می کنم باز هم همین ارور رو میده :

                  کد:
                  Could not open file: 'H:\Internal_temp_3\Internal_temp_2\adc_driver_asm.S90'

                  (این فایل در مسیر مورد نظر وجود داره .)

                  دیدگاه


                    #10
                    پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                    دوستان نظری ندارند؟

                    دیدگاه


                      #11
                      پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                      با int به جای uint8_t حل نمیشه؟

                      دیدگاه


                        #12
                        پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

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

                        دیدگاه


                          #13
                          پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                          احتمالا پروژه را از نوع ++C تعریف کرده اید که در اینحالت باید در فایل adc_driver.h خط مربوط به معرفی تابع اسمبلی را بصورت زیر تغییر دهید:

                          کد:
                          extern "C"
                          {
                           uint8_t SP_ReadCalibrationByte( uint8_t index );
                          }
                          اوژن: به معنای افکننده و شکست دهنده است
                          دانایی، توانایی است-Knowledge is POWER
                          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                          دیدگاه


                            #14
                            پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                            این کار را انجام دادم اما چند ارور جدید اضافه شد و بازهم ارور قبل وجود دارد .

                            کد:
                            Could not open file: 'C:\Users\***** Pendar\Desktop\XMEGA\Internal_temp_3\Internal_temp_2\adc_driver_asm.S90'

                            من برای اطمینان بیشتر برای راه اندازی ، از مثال دماسنج (Internal_temp_3) سایت خودتان (knowledgeplus.ir) دارم استفاده می کنم ولی این ارور به وجود می آید .
                            همچنین فایل adc_driver_asm.S90 در مسیر پروژه وجود دارد .

                            دیدگاه


                              #15
                              پاسخ : نحوه صحیح افزودن کدهای نوشته شده ATMEL به IAR

                              مثال مورد اشاره شما از نوع ++C نیست و به تغییر مورد نظر نیازی ندارد. شما یکبار همان پروژه را بدون هیچ تغییری دانلود کنید (بدون ساختن پروژه جدید) و در مسیر Options گزینه Clean را اجرا کنید و بعد از کامپایل نتیجه را اطلاع دهید.
                              اوژن: به معنای افکننده و شکست دهنده است
                              دانایی، توانایی است-Knowledge is POWER
                              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                              دیدگاه

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