اطلاعیه

Collapse
No announcement yet.

pulsIn

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

    pulsIn

    سلام

    مشکلم با pulseIn حل شد و یه سوال دیگه به وجود اومد خواستم الکی تاپیک نزنم همین جا مطرح میکنم
    مشکل اینه که وقفه ها یه تابع isr دارن که وقتی وقفه اومد یه دستوراتی رو اجرا کنه و این تو آردوینو خیلی محدودیت داره حالا میخوام تو این تابع دستور pulseIn رو قرار بدم ولی اصن کار نمیکنه میخواستم بدونم روشی هست که دستور رو اجرا کنه
    جدیدترین ویرایش توسط shokuhi; ۱۵:۰۱ ۱۳۹۵/۰۶/۱۱.

    #2
    پاسخ : pulsIn

    سلام
    میخوام یه برنامه ای بنویسم که یه ورودی دارم و این قراره high بشه میخوام زمان بین اولین high شدن تا high شدن بعدی رو محاسبه کنم میشه با pulsIn نوشت؟؟
    pulseIn(pin, HIGH)

    محاسبه زمان H شدن، تا زمانی که L بشه...........
    حالا محاسبه زمان بین اولین H شدن تا H شدن بعدی >>>> یعنی(L به) Hبه L و بعد H حالا محاسبه این زمان >>> به کمک تابع بالا زمان اولین H شدن رو محاسبه میکنی - به کمک تایمر زمان بین L تا H رو محاسبه میکنی - و بعد جمع میزنی

    و مورد بعدی اینکه تو این آموزش گفته شده این دستور میتونه تا 3 دقیقه رو اندازه گیری کنه ولی من امتحان کردم از یک ثانیه بیشتر نمیشد!
    از متغییر
    unsigned long int
    استفاده کن
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

    دیدگاه


      #3
      پاسخ : pulsIn

      نوشته اصلی توسط md3848 نمایش پست ها
      سلام

      pulseIn(pin, HIGH)

      محاسبه زمان H شدن، تا زمانی که L بشه...........
      حالا محاسبه زمان بین اولین H شدن تا H شدن بعدی >>>> یعنی(L به) Hبه L و بعد H حالا محاسبه این زمان >>> به کمک تابع بالا زمان اولین H شدن رو محاسبه میکنی - به کمک تایمر زمان بین L تا H رو محاسبه میکنی - و بعد جمع میزنی


      از متغییر
      unsigned long int
      استفاده کن
      سلام آقا مهدی
      مشکلم با این تابع حل شد اینطوری که زمان LOW شدن رو فقط محاسبه میکنم و زمانش هم میتونم تا 3 دقیقه بالا ببرم
      pulseIn(pin,LOW,10000000) ابنجا تا ده ثانیه زمان محاسبه میشه
      حالا یه مشکل دیگه دارم
      چرا این تابع توی isr وقفه جواب نمیده

      دیدگاه


        #4
        پاسخ : pulsIn

        چرا isr وقفه در آردوینو انقدر محدودیت داره چه کارش میشه کرد؟
        این محدودیت ها تو میکروکنترلر هم وجود داره؟

        دیدگاه


          #5
          پاسخ : pulsIn

          مثلا؟
          این محدودیت مربوطه به کامپایلر آردوینو و میکرو مشکلی نداره.
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

          دیدگاه


            #6
            پاسخ : pulsIn

            نوشته اصلی توسط md3848 نمایش پست ها
            مثلا؟
            این محدودیت مربوطه به کامپایلر آردوینو و میکرو مشکلی نداره.
            مثلا همین تابع pulseIn و یا delay داخلش اجرا نمیشه حتی میکروثانیه هم به سختی جواب میده چطوری باید درستش کرد؟

            دیدگاه

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