اطلاعیه

Collapse
No announcement yet.

تعریف $LIB به صورت rum tiime

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

    تعریف $LIB به صورت rum tiime

    iهمونطور که میدونین دستوراتی که قبلشون علامت $ داره در زمان اجرا لود نمیشن یعنی اول که برنامه شروع به کار میکنه تمام اونارو لود میکنه حالا مشکل من اینه که من میخوام یه شرط بزارم که اگه این شرط صادق نبود این ib$ اجرا نشه
    مثلا من میخام تو یه برنامه هم mmc داشته باشم هم هارد دیسک یعنی یه سوال بپروسه بعد یکیشو به عنوان فایل سیستم در نظر بگیره اما چون این دستور $LIB ران تایم لود نمیشه هر بار یه فایل سیستم لود میکنه یه چیزی تو مایه این شبه کد پایین راهی هست؟
    If Dokmeh = 1 Then

    Lcd "mmc"
    $include "Config_MMC.bas"

    Elseif Dokmeh = 2 Then
    lcd "hard"
    $include "Config_HardDisk_M128.bas"
    end if

    #2
    پاسخ : تعریف $LIB به صورت rum tiime

    من فک کنم سوال شما از اساس مشکل داره

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

    مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

    نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

    دیدگاه


      #3
      پاسخ : تعریف $LIB به صورت rum tiime

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

      دیدگاه


        #4
        پاسخ : تعریف $LIB به صورت rum tiime

        دقیقا منظورم همینه شاید سوالم بد پرسیدم من می خوام هر بار یکی از این کتاب خونه ها تو برنامه تاثیر داشته باشه چون جلوی لود شودنشو نمیتونیم بگیریم پس چه کار میتونم بکنم که هر بار avr-dos یکی از منبع ها رو به عنوان منیع داده در نظر بگیره یعنی یه بار وقتی منبع ما mmc هست دستور پایین بزنک فایلای mmc بیاد یه بارم وقتی منبع hard هست فایلای hard disk بیاد

        S = Dir("*.*&quot
        While Len(s)> 0

        lcd S


        S = Dir()

        Wend

        دیدگاه


          #5
          پاسخ : تعریف $LIB به صورت rum tiime

          اون موقعه باید از دستور
          #IF condition



          #ELSE



          #ENDIF

          استفاده کنی
          مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

          نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

          دیدگاه


            #6
            پاسخ : تعریف $LIB به صورت rum tiime

            متاسفانه این جورم نمیشه چون #if شرطشو تو زمان اجرا نمیشه تغییر داد شرطش فقط یه ثابت میگیره و موقع کامپایل فقط یکی از شرطارو کامپایل میکنه و از رو بعدی میپره

            دیدگاه


              #7
              پاسخ : تعریف $LIB به صورت rum tiime

              من فکر میکنم سوال شما عملی نیست !!!!!!!!!!!

              چه نیازی هستش که شما حین کامپایل شرط بزارید ( مگه مداررو حین کامپایل تست میشه کرد oo: oo: oo: )
              مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

              نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

              دیدگاه


                #8
                پاسخ : تعریف $LIB به صورت rum tiime

                لزومش تو اینه که اگه هم "CF_HD.lbx" لود بشه هم "MMC.LIB" کتاب خونه avr-dos نمیدنه کدومو به عنوان منبع استفاده کنه و همیشه یکیشو انتخاب میکنه من میخوام اول که مدار روشن میکنی از کاربر بپرسه اطلاعات از کجا بخونم از هارد دیسک یا مموری کارت هر کدوم انتخاب شد اون بشه فایل سیستم برنامه
                در مورد عملی نبودن که حتما یه راهی هست شاید دارم راه اشتباه میرم اگه شما راه بهتری میشناسی بگو

                دیدگاه


                  #9
                  پاسخ : تعریف $LIB به صورت rum tiime

                  خوب علی آقا شما برا 2 تاشم برنامه شو بنویس و به صورت نرم افزاری این کار ور بکن .

                  به صورت واضحتر هر کدارم دارای زیر روال های مجزا باشند و شما به صورت نرم افزاری با اونا کار کن .

                  در این مورد شما باید هر دو کتابخانه رو استفاده کنی

                  مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

                  نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

                  دیدگاه


                    #10
                    پاسخ : تعریف $LIB به صورت rum tiime

                    منظورتونو درست نفهمیدم من برا 2 تاش تکی برنامه نوشتم بدون مشکل ام کار میکنن اما 2 تا باهم مشکلمه میشه تو حافظه فلش avr دوتا برنامه ریخت بعد بعد یه برنامه کنترلی ام ریخت که هر بار یکی رو انتخاب کنه؟

                    دیدگاه


                      #11
                      پاسخ : تعریف $LIB به صورت rum tiime

                      نه من اونطوری نگفتم که :

                      فرض کنید شما یک led داری و یه موتور - هر کدوم به یک پین میکرو وصل شده -

                      حالا قراره یک دقیقه led روشن باشه و یک دقیقه موتور کار کنه .

                      شما برنامه هر کدوم از اینا رو جداگانه مینویسی ........................

                      پس دو تا شو mix بنویس و هر کدوم زیر روال های خودشو داشته باشه و قسمت ها ی مشترک هم که مشترکه . حالا شما میتونی بر سیستم یه request در اول کار ایجاد کنی که مثلا ازت بپرسه از کدوم استفاده کنی و شما انتخاب میکنی من پیچیده گی خاصی نمیبینم :nerd:

                      بازم اگه منظورمو متوجه نشدی میتونم توضیح بدم
                      مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

                      نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

                      دیدگاه


                        #12
                        پاسخ : تعریف $LIB به صورت rum tiime

                        فهمیدم منظورتون چیه اول من خودمم فکر میکردم اینطور مشکلم حل میشه اما این موضوع تو کتاب خونه avr-dos درست جواب نمیده چون هر کدوم از این کتابخونه ها فایل سیستم avr تغییر میدن مثلا من دستور dir میزنم از معلوم نیست من کجای dir مشخص کنم که این dir برای مموری کارته یا برای هارد دیسک ؟

                        دیدگاه


                          #13
                          پاسخ : تعریف $LIB به صورت rum tiime

                          خوب اونوقت یه راه حل دیگه میشه گفت :

                          یه سوئیچ خارجی ( مثل یه ترنزیستور یا گیت منطقی ) بزار تا بین اونا انتخاب کنی ...

                          کی harddisk باشه و کی mmc :agree:
                          مهم نیست که چه اندیشه ای در سر و چه ترسی در دل دارید؛ مهم آن است که بیکار ننشینید و دست به کاری بزنید و وارد میدان عمل بشوید.

                          نمی توانید به کودکی بیاموزید که از خود مواظبت کند، مگر آنکه او را آزاد بگذارید تا برای مواظبت از خود بکوشد؛ ممکن است اشتباه کند، ولی دانایی او از میان همین اشتباهات سرچشمه می گیرد.

                          دیدگاه


                            #14
                            پاسخ : تعریف $LIB به صورت rum tiime

                            اگه بخوام این کارو بکنم باید یه سویچ بزارم و از 2 تا میکرو استفاده کنم چون تو سخت افزار هارد و مموری کارت مشکل نداره که تو نرم افزار میکرو مشکل داره
                            انگار واقعا هیچ راهی نیست :cry2:

                            دیدگاه


                              #15
                              پاسخ : تعریف $LIB به صورت rum tiime

                              سلام
                              علی آقا چند تا سوال. نحوه ارتباط با HDD مثل MMC یا نه؟ یعنی برای HDD از SPI استفاده می کنی؟ بعد اینکه آیا HDD هم مثل MMC فعالساز داره یا نه؟ و در آخر فکر می کنی HDD و MMC به لحاظ پروتکل به هم شبیهند؟

                              دیدگاه

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