اطلاعیه

Collapse
No announcement yet.

ایجاد وقفه یک میکرو ثانیه

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

    ایجاد وقفه یک میکرو ثانیه

    سلام ببخشید من می خواهم تایمر رو تنظیم کنم که هر یه میکرو ثانیه یه وقفه بده هر چی کلاک و پرسکالر و اینا رو عوض میکنم 1 میکرو ثانیه در نمیارم
    خواهش میکنم کمک کنید :cry2:
    لطفا سریعتر خیلی فوری فوتیه :angry:
    با کدویژن کار میکنم نه بیسیک

    #2
    پاسخ : ایجاد وقفه یک میکرو ثانیه

    سلام
    فرکانسی که برای کریستال انتخاب کردید چقدر هست؟
    از کدوم تایمر استفاده می کنید؟
    هر سری یه فکری داره! :read:
    ///////////////////////////////////////////////////////////

    دیدگاه


      #3
      پاسخ : ایجاد وقفه یک میکرو ثانیه

      برای فرکانس متر هم شما به یک ثانیه نیاز دارید برا همین مثال آقای کاهه تو کتابش گذاشته که در مدت یک ثانیه کانتر تعداد فرکانس ها رو مشماره به درد شما میخوره

      به تاپیک زیر مراجعه کن توضیحات هستش
      http://www.eca.ir/forum2/index.php?topic=11661.0
      تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
      داشتن عقله زيادتر از دیگر آدم ها است

      دیدگاه


        #4
        پاسخ : ایجاد وقفه یک میکرو ثانیه

        یک ثانیه رو بلدم 1میکرو ثانیه می خوام یک ثانیه زیاده

        دیدگاه


          #5
          پاسخ : ایجاد وقفه یک میکرو ثانیه

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

          دیدگاه


            #6
            پاسخ : ایجاد وقفه یک میکرو ثانیه

            فرضا 16 مگا هرتز رو مستقیم به تایمر بدید. در این صورت هر تیک 62.5 نانوثانیه طول میکشه.
            16*62.5 =1000 نانوثانیه.
            پس فرکانس شد همون 16 مگ (یعنی بدون تقسیم) تعداد تیک که تایمر باید بشمره تا سر ریز بشه 16! توی روتین وقفه هم تا 15 دستور اسمبلی میتونید بنویسید( بیشتر بشه وقفه ی بعدی میرسه)
            [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

            دیدگاه


              #7
              پاسخ : ایجاد وقفه یک میکرو ثانیه

              نوشته اصلی توسط shahinbahari
              فرضا 16 مگا هرتز رو مستقیم به تایمر بدید. در این صورت هر تیک 62.5 نانوثانیه طول میکشه.
              16*62.5 =1000 نانوثانیه.
              پس فرکانس شد همون 16 مگ (یعنی بدون تقسیم) تعداد تیک که تایمر باید بشمره تا سر ریز بشه 16! توی روتین وقفه هم تا 15 دستور اسمبلی میتونید بنویسید( بیشتر بشه وقفه ی بعدی میرسه)
              ممنون ببخشید اقای بهاری تو ایمیلی که راهنمایی کردین فرمودین مثلا 100 هرتز میشه 39 میکرو ثانیه
              یعنی من تو روتین وقفه چجوری بنویسم دو تا شرط بزارم که قاطی میکنه بدبخت
              if(i==15)
              {if(j==39)
              {.....
              :angry:

              دیدگاه


                #8
                پاسخ : ایجاد وقفه یک میکرو ثانیه


                intrupt timer()
                {
                if(counter==39)
                {
                //some thing
                }
                counter++;
                }

                عدد 39 رو که میدونید از کجا بدست اومده( مقدار این عدد باید قبل از ورود به وقفه حساب شده باشه. توی روتین وقفه نمیشه هر دفعه حساب کرد)
                اون 16 هم برای تنظیم تایمر هست و اصلا نیاز به اوردنش تو روتین وقفه نیست. شما متمم 16 (0xFF-0x10) و یا برای تایمر 1 (0xFFFF-0x10) رو توی ریجستر تایمر میریزید که بعد از 16 تیک یه وقفه بده. فاصله این 2 تا وقفه میشه 1میکرو ثانیه.
                [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]

                دیدگاه


                  #9
                  پاسخ : ایجاد وقفه یک میکرو ثانیه

                  نوشته اصلی توسط shahinbahari
                  فرضا 16 مگا هرتز رو مستقیم به تایمر بدید. در این صورت هر تیک 62.5 نانوثانیه طول میکشه.
                  16*62.5 =1000 نانوثانیه.
                  پس فرکانس شد همون 16 مگ (یعنی بدون تقسیم) تعداد تیک که تایمر باید بشمره تا سر ریز بشه 16! توی روتین وقفه هم تا 15 دستور اسمبلی میتونید بنویسید( بیشتر بشه وقفه ی بعدی میرسه)
                  راستی یه نکته دیگه هست که اگه با پروتئوس تست می کنید زمان رو دقیق نشون نمیده. باید عملی تست کنید و نتیجه رو بینید
                  هر سری یه فکری داره! :read:
                  ///////////////////////////////////////////////////////////

                  دیدگاه

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