اطلاعیه

Collapse
No announcement yet.

داستان این sysTick چیه؟

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

    داستان این sysTick چیه؟

    SysTick که مخفف System Tick Timer هست!

    چیه؟
    کی بکار میره؟
    اصلا این یارو کیلوی چند؟
    انجام پروژه هاي برنامه نويسي اندرويد
    [glow=red,2,300]نرم افزار نقشه هاي پاور کامپيوتر اندوريد[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    #2
    پاسخ : داستان این sysTick چیه؟

    نوشته اصلی توسط محسن فاریابی
    SysTick که مخفف System Tick Timer هست!

    چیه؟
    کی بکار میره؟
    اصلا این یارو کیلوی چند؟
    با سلام،

    این رو از کجا آوردی؟ اصلا مال چی هست؟!
    اگر اینی باشه که من فکر میکنم، تیک ساعت یه OS باید باشه. اگر اینطور باشه، رجوع بفرمائید به نحوه عملکرد سیستم عامل مرحوم DOS ..... :mrgreen:

    در OS هایی که برای میکرو نوشته میشه، برای ایجاد حالتی شبیه به مولتی تسک، یه تایمر در بازه های زمانی مشخصی مثلا هر 100 میکرو ثانیه سرریز میشه، این یعنی اینکه میکرو کارهای محوله رو با رزولوشن 100 میکروثانیه ای کنترل و مدیریت میکنه. به این سرریز تایمر میگن تیک سیستم یا تیک OS ....

    بطور مثال شما یه میکرو داری که قراره سه تا تسک رو به این شکل انجام بده، در بازه زمانی 300 میلی ثانیه عملیات A و 800 میلی ثانیه عملیات B و 1500 میلی ثانیه عملیات C ( مثلا سه تا LED رو روشن و خاموش کنه و یا مثلا سنسورهایی رو بخونه و خروجی هایی رو ست و ریست کنه )، یه روش این هست که یه لوپ بزاری که یه تاخیر 10 میلی ثانیه ای داشته باشه و سه تا متغیر ( برای هر تسک یک متغیر ) که با هر بار لوپ زدن به هر کدوم از اونها یکی اضافه بشه، بعد از 30 بار لوپ زدن، متغیر تسک A به 30 میرسه، یعنی 300 میلی ثانیه سپری شده، پس شما باید به امور مربوط تسک A رسیدگی کنید و بعد از صفر کردن متغیر تسک A ، لوپ رو ادامه بدید. برای متغیر تسک B بعد از رسیدن به 80 و برای متغیر تسک C بعد از رسیدن به 150 هم همین کار رو خواهید کرد. حالا این روش دارای مشکلاتی هست، وقتی تعداد تسک ها زیاد بشه و یا مدت تاخیرشون کمتر یا خیلی بیشتر بشه دیگه اینطوری نمیشه کار کرد. میکرو در زمان وقوع تاخیر عملا کاری نمیتونه انجام بده، در زمانی که به امور یکی از تسک ها رسیدگی میشه، مقدار تاخیر بیشتر از مقدار تعیین شده میشه ( اینجا، بیشتر از 10میلی ثانیه ) یا اگر این وسطا لازم باشه یه ورودی مثل کلید، سنسور و یا هر چیز دیگه ای رو بخونی چی و .... حالا باید چیکار کرد؟! خوب راهکار استفاده از یه تایمر هستش که بجای تاخیر، برای ما زمان گیری کنه و تیک ایجاد کنه و ما با شمارش این تیک ها، تسک های متفاوتی رو انجام بدیم، در این مثال 3 تا تسک داریم که در صورتی که تیک تایمر 10 میلی ثانیه باشه، بعد از اینکه متغیر تسک A به 30 برسه امور مربوط به اون رو انجام میدیم و الی آخر .... اینطور تا وقوع تیک بعدی ما 10 میلی ثانیه وقت داریم که میتونیم صرف امور محاسباتی، خوندن سنسورها و یا ورودی ها و غیره بکنیم.

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

    حالا این تیک تایمره، همون System Tick Timer هستش.....
    ( ببین این سوال ساده چقدر عمیق بود، داشتم تووش غرق میشدم )
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

    دیدگاه


      #3
      پاسخ : داستان این sysTick چیه؟

      سلام

      دوست عزیز سوال جلبیه.جواب رو می تونید تو لینک زیر و همچنین pdf قرار داده شده ملاحظه فرمائید.(به زبان اصلی هستش و خیلی خوب توضیح داده) حالا اگه جا نیفتاد بگید توضیح بدیم.

      لینک زیر:
      http://www.utasker.com/forum/index.php?topic=112.0

      فایل pdf:
      http://infocenter.arm.com/help/topic/com.arm.doc.dai0179b/AppsNote179.pdf
      دکتر شريعتي:

      زنده بودن را به بيداري بگذرانيم که سالها به اجبار خواهيم خفت.

      دیدگاه

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