اطلاعیه

Collapse
No announcement yet.

تایمر با تاخیر طولانی

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

    تایمر با تاخیر طولانی

    یک برنامه با آردوینو میخوام بنویسم که 6 ساعت یک خروجیش فعال بشه و 18 ساعت غیرفعال لطفا یک راهنمایی به من کنید

    #2
    پاسخ : تایمر با تاخیر طولانی

    سلام
    راستش منم این سوال را دارم که اصلا ایجادتاخیر مثلا delay(21600000); یا بقول شما 6 ساعته اصلا در برنامه ساعت برای HIGH نگه داشتن یک خروجی صحیح هست یا خیر؟
    اگه نه راه صحیحش چیه؟

    دیدگاه


      #3
      پاسخ : تایمر با تاخیر طولانی

      نوشته اصلی توسط حمید حمید نمایش پست ها
      سلام
      راستش منم این سوال را دارم که اصلا ایجادتاخیر مثلا delay(21600000); یا بقول شما 6 ساعته اصلا در برنامه ساعت برای HIGH نگه داشتن یک خروجی صحیح هست یا خیر؟
      اگه نه راه صحیحش چیه؟
      سلام
      فکر نمیکنم با تابع delay این کار شدنی باشه. اگر هم شدنی باشه اصلا عقلانی نیست! چون هم دقت کمی داره، هم پردازنده رو بی جهت مشغول میکنه و باعث اتلاف توان و یک سری مسائل دیگه میشه. معمولا برای تاخیرهای زیاد از تایمر استفاده میکنن که دقت خوبی داشته باشه. اگر مدت انتظار زیاد باشه و توی مدت انتظار پردازنده کار دیگه ای برای انجام نداشته باشه، از مدهای sleep برای کاهش مصرف توان استفاده میکنن.

      دیدگاه


        #4
        پاسخ : تایمر با تاخیر طولانی

        نوشته اصلی توسط hossein.m98 نمایش پست ها
        سلام
        فکر نمیکنم با تابع delay این کار شدنی باشه. اگر هم شدنی باشه اصلا عقلانی نیست! چون هم دقت کمی داره، هم پردازنده رو بی جهت مشغول میکنه و باعث اتلاف توان و یک سری مسائل دیگه میشه. معمولا برای تاخیرهای زیاد از تایمر استفاده میکنن که دقت خوبی داشته باشه. اگر مدت انتظار زیاد باشه و توی مدت انتظار پردازنده کار دیگه ای برای انجام نداشته باشه، از مدهای sleep برای کاهش مصرف توان استفاده میکنن.
        از تایمر شماره یک استفاده کنیم یا دستور millis

        دیدگاه


          #5
          پاسخ : تایمر با تاخیر طولانی

          نوشته اصلی توسط Jafar mo نمایش پست ها
          از تایمر شماره یک استفاده کنیم یا دستور millis
          والا من آردوینو کار نمیکنم، نمیدونم millis چیه. ولی فکر کنم با تایمر پیاده سازی شده باشه. در هر صورت همش به خود شما بر میگرده که چه روشی استفاده کنید.

          دیدگاه


            #6
            پاسخ : تایمر با تاخیر طولانی

            یک مسئله دیگم هست که من تو برنامه از watchdog میخواهم استفاده کنم که حداکثر 8 ثانیه میتونه delay و یا timer را تحمل کنه و بعد میکرو ریست میکنه
            البته یک راحل براش دیدم و اون اینکه یک حلقه for یک ثانیه ای درست کنم بعد توش هی watchdog را صفر کنم.
            اساتید عزیز راهنمایی بفرمایند.

            اینم برنامه بنده
            در خط 369 و 402 delay را تعریف کردم برای high نگه داشتن خروجی، که اصلا راه مناسبی نیست

            دیدگاه


              #7
              پاسخ : تایمر با تاخیر طولانی

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

              #include "Timer.h" //[URL]https://github.com/JChristensen/Timer[/URL]
              Timer Ti1;
              Timer Ti2;
              .
              ..
              Ti1.pulseImmediate(RELAY_Temp1, A1_delay * 60 * 1000UL, LOW);
              Ti2.pulseImmediate(RELAY_Hum2, A2_delay * 60 * 1000UL, LOW);
              .
              .
              .
              Ti1.update();
              Ti2.update();


              دیدگاه

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