اطلاعیه

Collapse
No announcement yet.

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

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

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

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

    جایی من نیاز دارم به وقفه های 100 میلی ثانیه و 6 ثانیه 3 ثانیه 25 ثانیه و ... بعضی موقع هم ممکنه یک وقفه نیاز نشه .

    شما برای ایجاد این وقفه ها چه کاری انجام میدین ؟ و اگر ممکنه یک نمونه کد ارائه بدین
    با فرض این که وقفه تایمر 1 بر روی 100 میلی ثانیه تنظیم شده .

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

    #2
    پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

    سلام دوست گرامی

    با فرض این که وقفه تایمر 1 بر روی 100 میلی ثانیه تنظیم شده باشد باید در زیر روال وقفه یک شمارنده رو قرار دهید که هر بار وقفه ایجاد شود یک واحد به مقدارش اضافه شود
    سپس با استفاده از دستور if اگه مقدار شمارنده ( از 0 شروع شود) به 30 رسید یعنی 3 ثانیه گذشته و یا اگه به 60 رسید یعنی 6 ثانیه گذشته و . . .

    با آرزوی موفقیت برای شما
    آرزوی سرافرازی برای ایران عزیز . . .


    دیدگاه


      #3
      پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

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

      دیدگاه


        #4
        پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

        منم از همین روش استفاده میکنم گفتم شاید یه روش بهتری وجود داشته باشه .
        I'm going to
        RWTH Aachen
        University

        دیدگاه


          #5
          پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

          نوشته اصلی توسط azadfalah نمایش پست ها
          سلام دوستان امیدوارم حالتون خوب باشه

          جایی من نیاز دارم به وقفه های 100 میلی ثانیه و 6 ثانیه 3 ثانیه 25 ثانیه و ... بعضی موقع هم ممکنه یک وقفه نیاز نشه .

          شما برای ایجاد این وقفه ها چه کاری انجام میدین ؟ و اگر ممکنه یک نمونه کد ارائه بدین
          با فرض این که وقفه تایمر 1 بر روی 100 میلی ثانیه تنظیم شده .

          با سپاس فراوان .
          کد PHP:

          #define  INT_1SEC 10
          #define  INT_3SEC 30
          ...

          void interrupt_1SEC(void){
              
          // your code goes here
          }

          void interrupt_3SEC(void){
              
          // your code goes here
          }
          ...

          // 100 Ms interrupt service
          void interrupt_vect(void){
              static 
          unsigned int ticks 0;
              ++
          ticks;
              if((
          ticks INT_1SEC) == 0){
                  
          interrupt_1SEC();
              }
              if((
          ticks INT_3SEC) == 0){
                  
          interrupt_3SEC();
             }
          ...
          }

          void device_init(void){}

          int main(){

              
          device_init();

              while(
          1);
              return 
          0;

          جدیدترین ویرایش توسط ASHIT AXAR; ۱۷:۲۲ ۱۳۹۵/۰۶/۰۲.
          If the wind will not serve, take to the oars

          دیدگاه


            #6
            پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

            نوشته اصلی توسط ASHIT AXAR نمایش پست ها
            کد PHP:

            #define  INT_1SEC 10
            ..... 
            خیلی عالی بود دوست عزیز من اصلا نمیدونستم که با این روش هم میشه پرچم هارو درست کرد
            حالا یک سوال اگر هر موقع من خواستم شروع کنه به شماردن شما هم همون روشی که دوستان معرفی کردن رو پیشنهاد میکنید ؟
            I'm going to
            RWTH Aachen
            University

            دیدگاه


              #7
              پاسخ : شما برای ایجاد وقفه های تعداد بالا به چه صورت عمل میکنید ؟

              نوشته اصلی توسط azadfalah نمایش پست ها
              خیلی عالی بود دوست عزیز من اصلا نمیدونستم که با این روش هم میشه پرچم هارو درست کرد
              حالا یک سوال اگر هر موقع من خواستم شروع کنه به شماردن شما هم همون روشی که دوستان معرفی کردن رو پیشنهاد میکنید ؟
              بله - از هنگامی که تایمر فعال میشه ticks میشماره (هر 100Ms) و بعد از رسیدن به INT_1SEC که (10 تیک هستش) تابع وقفه یک ثانیه رو اجرا میکنه
              و همینطور برای وقفه های دیگه - هر چند تا وقفه ای که نیاز بود رو اضافه کنید
              ticks هم بعد از رسیدن به مقدار نهایی ، خودش صفر میشه تا همه چی شرو بشه دوباره از نو دو قدمی
              If the wind will not serve, take to the oars

              دیدگاه

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