اطلاعیه

Collapse
No announcement yet.

حلقه های While

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

    حلقه های While

    با سلام
    من یه حلقه While توی برنامم دارم که مرتب و با سرعت بالا اجرا میشه. ولی همزمان داخل حلقه نیاز دارم که یه دستور به صورت فاصله زمانی ثابت اجرا بشه. به عنوان مثال این حلقه در هر میلی ثانیه 500 بار اجرا میشه (البته این عدد ثابت نیست) بعد من می خوام که در فواصل زمانی مشخصی یه فرمان داخل حلقه اجرا بشه. این فاصله زمانی بین 1 تا 100 میلی ثانبه متغییر هست. البته این نکته را بگم که از حلقه های Timmed Structure هم نمی تونم استفاده کنم. چون اولاً دقیق نیست (مخصوصاً توی فاصله های زمانی زیر 10 میلی ثانیه) و ثانیاً سرعت اجرا به شدت کم میشه.
    با تشکر

    #2
    پاسخ : حلقه های While

    ببینید دوست گرامی حلقه while برنامه شما بدنه اصلی برنامه رو شکل میده... و هیچ مزاحمتی برای شما نداره و فقط برای ادامه دار بودن و تکرار برنامه شماست. تمامی برنامه شما درون حلقه قرار میگیره.. شما اگه دوست دارید که یه فرآیند داخل حلقه با سرعت مشخصی انجام بگیره باید از توابع time استفاده کنید. ولی اگه لطف کنید مسئله رو بیشتر باز کنید بهتر میتونم کمک کنم. من یه برنامه تست رو میزارم ببینید احتمالا مشکل حل بشه.

    دیدگاه


      #3
      پاسخ : حلقه های While

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

      دیدگاه


        #4
        پاسخ : حلقه های While

        ممنون بابت مثالتون. من یه تغییراتی توی مثال دادم.
        توی مثال 3 تا حلقه شرطی داخل یه حلقه while قرار داره. وقتی که هر سه شرط خاموش باشن حلقه یا سرعت خیلی زیادی اجرا میشه. اگه شرط حلقه اول (1 میلی ثانیه قعال بشه) سرعت تکرار حلقه ناگهان کم میشه و میشه یک بار در هر میلی ثانبه. اگه شرط دوم فعال بشه میشه یکبار در هر 50 میلی ثانیه و اگه شرط سوم فعال بشه میشه یک بار در هر 100 میلی ثانیه. ولی من میخوام حلقه با همون سرعت خودش اجرا بشه.
        فرض کنید من یه معادله دارم که باید به صورت تکرار حل بشه. می خوام که یه Trace ازش داشته باشم. و بدونم بعد هر مرحله به کجا رسیده (داخل یه فایل ذخیره بشه). چون تعداد دفعات خیلی زیاده نمی خوام بعد از هر تکرار ذخیره کنم متغییر هارو. میخوام مثلاً براش تعریف کنم بعد هر 1 میلی ثانیه نتایج را ذخیره کن. البته من الان با استفاده از Local Variable تونستم یه کارهایی بکنم. نمی دونم اصولی هست یا نه.
        توی حلقه اصلی برنامه یه متغییر Local تعریف کردم و نتایج را ریختم داخل اون. بعد یه حلقه Timmed بیرون حلقه اصلی ایجاد کردم. و براش تعریف کردم که هر چند میلی ثانیه اجرا بشه. بعد توی اون Local Variable را می خونم.
        (شرمنده من نتونستم فایل را ضمیمه کنم)

        دیدگاه

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