اطلاعیه

Collapse
No announcement yet.

آموزش ساخت کتابخانه در کدویژن

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

    آموزش ساخت کتابخانه در کدویژن

    سلام دوستان امیدوارم حالتون خوب باشه .

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

    با سپاس فراوان
    I'm going to
    RWTH Aachen
    University

    #2
    پاسخ : آموزش ساخت کتابخانه در کدویژن

    ,وقتی نیو پروجکت رو میزنید میپرسه که پروژه میخواید یا سورس. شما سورس رو بزنید. توی صفحه ای که باز میشه برنامه تون رو بنویسید. داخلش چندتا تابع بنویسید و کتابخونه های مورد نیاز رو هم فراخوانی کنید.بعد از اتمام کار سیو رو بزنید و اسم کتابخونتون رو تعیین کنید و با فرمت h. ذخیرش کنید و تمام.
    www.gam-co.blogsky.com

    دیدگاه


      #3
      پاسخ : آموزش ساخت کتابخانه در کدویژن

      من توابعی ای که تو کتاب خونه وجود داره رو میخوام فراخوان کنم با این روش میشه ؟
      I'm going to
      RWTH Aachen
      University

      دیدگاه


        #4
        پاسخ : آموزش ساخت کتابخانه در کدویژن

        بله وقتی کدهاتون رو داخل فایل با پسوند h یا c ذخیره کردید باید اون رو در فایل اصلی برنامه وارد کنید...
        به این شکل:


        #include "mylibs/lib.h"


        الان با این کار فایل lib.h از فولدر mylibs فراخوانی شد
        جدیدترین ویرایش توسط Mahdi.Faani; ۰۱:۱۵ ۱۳۹۵/۰۶/۰۳.
        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

        www.intelart.ir


        ساخت کنترلر دما PID فازي با AVR [آموزشی]

        دیدگاه


          #5
          پاسخ : آموزش ساخت کتابخانه در کدویژن

          با سلام، با اجازه دوستان و اساتید محترم، این تاپیک رو با توجه به اندک تجربیاتم پیرامون کد نویسی شروع میکنم و امیدوارم که با مشارکت همه دوستان بتونیم کمکی برای ارتقاء سطح دانش عمومی انجمن در کد نویسی باشیم. *************************** نوشتن یک کتابخانه صرف نظر از سخت افزار و پلتفرم کامپایلر مورد استفاده، میتونه از سه جنبه

          دیدگاه


            #6
            پاسخ : آموزش ساخت کتابخانه در کدویژن

            مرسی دوستان یک سوال من تو فایل سورس تابعم رو داخل حلقه بینهایت بنویسم ؟ کجا بنویسم ؟
            I'm going to
            RWTH Aachen
            University

            دیدگاه


              #7
              پاسخ : آموزش ساخت کتابخانه در کدویژن

              خواهش میکنم
              نه دیگه توابع که داخل حلقه نوشته نمیشن...ببینید توابع (در زبان سی میگن متد Method) یک مجموعه از دستورات هست که میتونه ورودی داشته باشه یا نداشته باشه و خروجی داشته باشه یا نداشته باشه (با تعداد متغیر) ..حالا شما این مجموعه دستورات رو ممکنه به طور مکرر بخواید استفاده کنید...برای اینکه دوباره کاری نشه و حجم کد الکی زیاد نشه اون رو داخل متد مینویسن تا هر بار از یک جا خونده بشه...
              اون حلقه while به این خاطر هست که رجیستر program counter میکروکنترلر کنترل بشه...اگه اون حلقه رو نذارید و پروگرم کانتر به حال خودش رها بشه شروع میکنه به خوندن از فلش تا وقتی که به آخرین خونه برسه و در این بین معلوم نیست که چه حرکات پیش بینی نشده ای ازش سر بزنه
              پیشنهاد میکنم یک دور معماری میکروکنترلر رو هر چند مختصر بخونید تا با کاربرد این ها آشنا بشید...مثلا بدونید اون حلقه while داخل تابع main واسه چی هست!
              تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

              www.intelart.ir


              ساخت کنترلر دما PID فازي با AVR [آموزشی]

              دیدگاه


                #8
                پاسخ : آموزش ساخت کتابخانه در کدویژن

                نوشته اصلی توسط Mahdi.Faani نمایش پست ها
                خواهش میکنم
                نه دیگه توابع که داخل حلقه نوشته نمیشن...ببینید توابع (در زبان سی میگن متد Method) یک مجموعه از دستورات هست که میتونه ورودی داشته باشه یا نداشته باشه و خروجی داشته باشه یا نداشته باشه (با تعداد متغیر) ..حالا شما این مجموعه دستورات رو ممکنه به طور مکرر بخواید استفاده کنید...برای اینکه دوباره کاری نشه و حجم کد الکی زیاد نشه اون رو داخل متد مینویسن تا هر بار از یک جا خونده بشه...
                اون حلقه while به این خاطر هست که رجیستر program counter میکروکنترلر کنترل بشه...اگه اون حلقه رو نذارید و پروگرم کانتر به حال خودش رها بشه شروع میکنه به خوندن از فلش تا وقتی که به آخرین خونه برسه و در این بین معلوم نیست که چه حرکات پیش بینی نشده ای ازش سر بزنه
                پیشنهاد میکنم یک دور معماری میکروکنترلر رو هر چند مختصر بخونید تا با کاربرد این ها آشنا بشید...مثلا بدونید اون حلقه while داخل تابع main واسه چی هست!
                مرسی دوست عزیز من میدونم حلقه بینهایت چه کار انجام میده اما واقعا نمیدونم برای ساخت کتاب خونه چه کار کنم تو سورسی که میخوام کتابخونش کنم فقط تابعم رو بنویسم نیازی به حلقه main و while نیست ؟
                I'm going to
                RWTH Aachen
                University

                دیدگاه


                  #9
                  پاسخ : آموزش ساخت کتابخانه در کدویژن

                  دوستان کد هایی که تو کتابخونه وجود دارند به متغیر های کلی دسترسی دارند ؟
                  I'm going to
                  RWTH Aachen
                  University

                  دیدگاه


                    #10
                    پاسخ : آموزش ساخت کتابخانه در کدویژن

                    نه دیگه...کار یک متد این هست که یک بار اجرا بشه و دستوراتش رو به اتمام برسونه و سپس CPU برگرده به ادامه کارش...یعنی وقتی قراره یک تابع اجرا بشه CPU آدزس فعلی رو نگه میداره و میپره به متد...بعد از اینکه دستورات متد رو انجام داد دوباره برمیگرده به محل قبلی و ادامه کارش رو انجام میده...حالا اگه شما یه حلقه بی نهایت داخل متد قرار بدید چ اتفاقی میفته؟CPU وقتی واردش بشه گیر میکنه و هیچ وقت بیرون نمیاد...
                    main تابع اصلی هست..هر پروژه فقط یک تابع main باید داشه باشه

                    دوستان کد هایی که تو کتابخونه وجود دارند به متغیر های کلی دسترسی دارند ؟
                    بله دسترسی دارند در صورتی که اون فایلی که متغیر عمومی درونش تعریف شده در فایل حاوی متد شما اینکلود بشه...یعنی چی؟یعنی اینکه مثلا من 10 تا متغیر عمومی توی فایل globals.h تعریف کردم...حالا میخوام این متغیر ها واسه متدی که در فایل mymethod.h هست، قابل شناسایی باشه...خب باید فایل globals.h رو داخل mymethod.h اینکلود کنم.

                    راه بهتر و حرفه ای تر اینه که یکی از آرگومان های متد یک اشاره گر (pointer) باشه و من هر متغیر هر کجای برنامه رو ک بخام تغییر بدم کافیه تا آدرس اون رو بدم به متد.
                    مثال:
                    فرض کنید که من یک متغیر به اسم a از نوع int دارم...این متغیر عمومیه ولی قابل شناسایی در فایلی که متد من ذخیره شده نیست...خب کافیه متد طوری تعریف شده باشه که من با دادن آدرس متغیر بتونم تغییراتم رو اعمال کنم.

                    void mymet(int* arg_in)
                    {
                    int x=5;
                    *arg_in=x*2;
                    }


                    حالا از تابع اینطوری استفاده مکینم:


                    int a=5;

                    int main()
                    }
                    mymet(&a);
                    {


                    با اینکار مقدار a تغییر کرد بدون اینکه قابل شناسایی در فایلی باشه که متد رو در اونجا ذخیره کردیم
                    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                    www.intelart.ir


                    ساخت کنترلر دما PID فازي با AVR [آموزشی]

                    دیدگاه


                      #11
                      پاسخ : آموزش ساخت کتابخانه در کدویژن

                      دوست عزیز از اینکه وقتتون رو میزارید و توضیح میدین سپاسگزارم

                      من تو فایل اصلی پروژه یک سری چیز رو دیفاین کردم و از همون ها تو فایل کتابخونه استفاده میکنم طبق نتیجه ای که از صحبت های شما گرفتم نباید مشکلی باشه.
                      از طرفی یک متغیر گلوبال که تو فایل اصلی پروژم تعریف شده تو کتابخونه مورد استفاده قرار میگیره باز هم طبق صحبت های شما نباید مشکلی وجود داشته باشه .
                      من هم فایل کتابخونه رو تو سورس اصلی include میکنم

                      تایید میشه ؟
                      جدیدترین ویرایش توسط Azadfalah; ۱۷:۳۸ ۱۳۹۵/۰۶/۰۳.
                      I'm going to
                      RWTH Aachen
                      University

                      دیدگاه


                        #12
                        پاسخ : آموزش ساخت کتابخانه در کدویژن

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

                        از طرفی یک متغیر گلوبال که تو فایل اصلی پروژم تعریف شده تو کتابخونه مورد استفاده قرار میگیره باز هم طبق صحبت های شما نباید مشکلی وجود داشته باشه
                        من ک همچین چیزی نگفتم!..دقیقا برعکس نتیجه گرفتید...میتونید صحت این موارد رو با یه برنامه ساده تست کنید...
                        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                        www.intelart.ir


                        ساخت کنترلر دما PID فازي با AVR [آموزشی]

                        دیدگاه


                          #13
                          پاسخ : آموزش ساخت کتابخانه در کدویژن

                          نوشته اصلی توسط Mahdi.Faani نمایش پست ها
                          یعنی چی؟اگه کتابخونه و تابع اصلی در یک فایل نباشن اررور میگیرید...چون که فایل های فرعی داخل فایل اصلی اینکلود میشن و شما میخاین از فایل اصلی اطلاعاتی رو در فایل فرعی بخونید...
                          من ک همچین چیزی نگفتم!..دقیقا برعکس نتیجه گرفتید...میتونید صحت این موارد رو با یه برنامه ساده تست کنید...
                          توجه کنید شما مثال زدین اگر متغیر های گلوبال تو یک متد معرفی شده و من میخوام از اون ها درون متد دیگه استفاده کنم باید متدی که حاوی متغیر ها میباشد رو اینکلود متد دیگر کنیم

                          اما من متغیر های گلوبالم تو تابع اصلی تعریف شده و میخوام از اون ها داخل متد استفاده کنم تحت این شرایط امکان استفاده وجود داره یا نه به چه صورت ؟
                          I'm going to
                          RWTH Aachen
                          University

                          دیدگاه


                            #14
                            پاسخ : آموزش ساخت کتابخانه در کدویژن

                            متغیر گلوبال یعنی چی؟یعنی چیزی ک همه جا قابل شناسایی باشه...اصلا امکان تعریف متغیر گلوبال درون متد وجود نداره...

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

                            Sent from my E2333 using Tapatalk
                            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                            www.intelart.ir


                            ساخت کنترلر دما PID فازي با AVR [آموزشی]

                            دیدگاه


                              #15
                              پاسخ : آموزش ساخت کتابخانه در کدویژن

                              برای اینکه متغیر های گلوبال در متد ها قابل استفاده باشه باید extern رو به اولشون اضافه کنیم حالا با اضافه کردن extern میشه از داخل متد ها متغیر هارو تغیر داد ؟
                              جدیدترین ویرایش توسط Azadfalah; ۱۰:۳۸ ۱۳۹۵/۰۶/۰۶.
                              I'm going to
                              RWTH Aachen
                              University

                              دیدگاه

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