اطلاعیه

Collapse
No announcement yet.

مشکل library در Atmel studio

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

    مشکل library در Atmel studio

    سلام دوستان

    چند روزیه کار با atmel studio رو شروع کردم
    قبلا از کدویژن استفاده میکردم . کتابخونه میخواستم بنویسم فقط یه .h مینوشتم دیگه .c نمی نوشتم . الان اومدم تو avrstudio اینجا هم با کتابخونهای .h که نوشته بودم قبلا مشکلی ندارم .
    اما وقتی میخوام از کتابخونه .h که اصل توابعش توی .c هست استفاده کنم ارور میگیرم
    کد:
    Severity	Code	Description	Project	File	Line
    Error		undefined reference to `delay_ms(unsigned int)'	asds	C:\Users\Saeed\Desktop\ENC TUX TEST\asds\asds\Debug/.././main.cpp	59
    این یه نمونش . فایلهای .c و .h رو هم به پروزه add existing item میکنم . اومدم رو UIP کار کنم واسه اترنت این خطا رو گرفتم بعدش چیزای دیگم امتحان کردم عین همین مشکل بود مثلا تابع tuxG برای اترنت هم امتحان کردم اونم همین بود ! سرچ کردم میکن مثل اینکه مشکل لینکر هست اما راه حل ندادن .
    اتمل استدیو 7 هستم . میشه بگید مشکل کجاست؟
    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
    هيتلر

    #2
    پاسخ : مشکل library در Atmel studio

    تابع تاخیر زمانی تو اتمل و کدویژن یکم فرق داره

    delay function in atmel studio




    بدین صورت! باید بنویسی
    [code=c]_delay_ms(100);[/code]
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : مشکل library در Atmel studio

      نوشته اصلی توسط md3848
      تابع تاخیر زمانی تو اتمل و کدویژن یکم فرق داره

      delay function in atmel studio
      بدین صورت! باید بنویسی
      [code=c]_delay_ms(100);[/code]
      ممنون از کمکتون . بله مطلع هستم . این اون تابع نیست . مشکل من استفاده از توابع خود استدیو نیست
      این تابع delay برای tuxG هست . این تابع در لایبرری timeout.h قرار داره که از اینترنت همراه با مثال اترنت دانلود شده .
      البته delay فقط یه مثال بود اینجا . بنده عرض کردم کلن با کتابخونه مشکل داره نه فقط با delay
      ببینید من الان یه مثال ساختم:
      فایل اصلی برنامه :
      کد:
      #include <avr/io.h>
      #include "SS.h"
      
      int main(void)
      {
        /* Replace with your application code */
        while (1) 
        {
      		sum(1,4);
        }
      }
      فایل c کتابخانه :
      کد:
      #include "ss.h"
      
      void sum (int a,int b)
      {
      	int c;
      	c= a+b;
      }
      فایل h کتابخانه
      کد:
      void sum (int a,int b);
      ارور:
      کد:
      Severity	Code	Description	Project	File	Line
      Error		undefined reference to `sum(int, int)'	LIB TEST	C:\Users\Saeed\Desktop\LIB test\LIB TEST\LIB TEST\Debug/.././main.cpp	9
      لایبرری هم add exicting file شده
      اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
      هيتلر

      دیدگاه


        #4
        پاسخ : مشکل library در Atmel studio

        سلام

        این هم یه پروژه آماده با ATmega8A
        http://up.persianscript.ir/uploads2/793b-Example.rar
        شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

        دیدگاه


          #5
          پاسخ : مشکل library در Atmel studio

          نوشته اصلی توسط شهاب طاهری
          سلام

          این هم یه پروژه آماده با ATmega8A
          http://up.persianscript.ir/uploads2/793b-Example.rar
          پروژه شما رو کمپایل کردم کار میکرد . اما جالبیش اینجاست وقتی خودم روژه دزست میکنم کد شمارو کپی میکنم خطا میگیرم
          این کد خطا داره
          کد:
          #include <avr/io.h>
          #include "H/SS.h"
          //
          int main(void)
          {
          	delay();
            /* Replace with your application code */
            while (1) 
            {
            }
          }
          قابل دکر که من موقغ اینکلود خطا نمیگیرم ! موقع استفاده از تابع داخل کتابخونه فراخوانی شده خطا میگیرم . به همین خاطر اون delay() رو خودم اضافه کردم که در اصل هیچیم توش نیست
          میشه بگین new project چجوری درست میکنید ؟
          من از atmel studio 7 استفاده میکنم شما همه از 6.2
          اما تابع شما رو codevision جواب نمیده
          اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
          هيتلر

          دیدگاه


            #6
            پاسخ : مشکل library در Atmel studio

            برای من هم 6.2 هست.
            اول اینکه شما در "tab "solution explorer هم include انجام میدید.
            مراحل ساخت پروزه:
            1. از منوی فایل گزینه new project
            2. http://up.persianscript.ir/uploadsmedia/878d-1.jpg
            3. http://up.persianscript.ir/uploadsmedia/878d-2.jpg
            4. در تب solution explorer روی پروژه کلیک راست و اضافه کردن header file و C file
            5. اضافه کردن هدر فایلها در ابتدای تابع main به صورت نمایش داده شده در فایل. (با آدرس همراه باشد.)
            نکته:
            در C file حتما باید header file مربوطه اضافه شود. (زبان از بیان این قسمت قاصره) نیاز به آدرس دهی C file در header file نیست و فقط باید include شود.
            لطفا به نمونه فایلی که فرستادم توجه کنید.
            شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

            دیدگاه


              #7
              پاسخ : مشکل library در Atmel studio

              مرسی از توضیحات . اما منم از همین روش میرم . نمی شه
              من رفتم atmel studio 6.2 sp2 رو هم گرفتم تست کردم مشکل مشابه دارم
              دیگه دارم کنترلم رو از دست میدم !!
              فایل رو اپ لود کردم اگه میشه یه نگاه بهش بندازید
              این فایل اتمل استدیو 7 یه پروژه دیگست اما همین مشکله

              http://www.mediafire.com/download/a46qlzy31dds83g/ENC_ATS.zip

              اینم استدیو 6.2 همون SS.h

              http://www.mediafire.com/download/fs05uzuz072zp2r/UIP_AT6.2.zip

              واقعا ممنون میشم اگه مشکلم رو بهم بگید . دیگه داره کلافه میکنه . من نمیفهمم چرا پروژه شما کمپایل میشه مال من نمیشه .
              ///////////////////////////////////////////
              احتمالا درست شد ! من روژم رو C++ باز میکرم . قبلا هم که c باز میکردم لایبرری ادد نمیکردم
              اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
              هيتلر

              دیدگاه


                #8
                پاسخ : مشکل library در Atmel studio


                در ++C به روش پایین عمل کنید
                تا مرحله 3 که مثل همونه.
                4. در تب solution explorer روی پروژه کلیک راست کرده و فولدر هدر را میسازیم. در نام این فولدر فاصله نگذارید یعنی Header file اشتباه است و Header_file درست و سپس
                اضافه کردن header file و C++ file . البته شما از نام فاصله دار استفاده نکردید.
                توجه کنید که فایل include شده باید ++C باشد. وگرنه اشتباه رخ میدهد.
                ضمنا در آخر تابع main مقداری باید برگردد که return 0 باید باشد.
                شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

                دیدگاه


                  #9
                  پاسخ : مشکل library در Atmel studio

                  دوست عزیز اگر هنوز مشکل پابرجاست اطلاع بدید!
                  اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
                  شهيد دکتر مصطفي چمران
                  اللهم صل علي محمد و ال محمد و عجل فرجهم
                  ; C is not for children

                  دیدگاه


                    #10
                    پاسخ : مشکل library در Atmel studio

                    با سلام
                    تو اتمل استودیو چگونه باید یک کتابخانه اضافه نمود
                    کسی کتابخانه مربوط به LCD کاراکتری داره برام بذاره

                    دیدگاه


                      #11
                      پاسخ : مشکل library در Atmel studio

                      نوشته اصلی توسط mostafa6369 نمایش پست ها
                      با سلام
                      تو اتمل استودیو چگونه باید یک کتابخانه اضافه نمود
                      کسی کتابخانه مربوط به LCD کاراکتری داره برام بذاره
                      در قسمت پوشه فایل های برنامه کپی کنید فایل هدر رو. معمولا در My Document > Atmel Studio و سپس با دستور به شکل زیر با "" فراخوانی کنید

                      #include "yourlibrary.h"
                      STM32 واقعا یه چیز دیگه است...

                      دیدگاه

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