سلام
توی یه پروژه برای خواندن یه سری داده، از تایمر یک ATmega16 استفاده کردم.
پروژه رو با بسکام نوشتم. Prescale = 1 قرار دادم و با کریستال 10MHz کار میکنم. یعنی هر شمارش باید در 10000000/1 ثانیه (100nS) انجام بشه.
اما در هر بار که وقفه تایمر رخ میده، یه تأخیر اضافی بوجود میاد.
اگه عدد 100 رو برای تایمر قرار بدی، به جای 10uS = 100*100nS اعمال وقفه بعد 17uS رخ میدهد.
و این 7uS همیشه به طور ثابت به زمان وقفه اضافه میشود. (حتی اگه تعدا شمارش رو تغییر بدی.)
مشکل چیه؟
توی یه پروژه برای خواندن یه سری داده، از تایمر یک ATmega16 استفاده کردم.
پروژه رو با بسکام نوشتم. Prescale = 1 قرار دادم و با کریستال 10MHz کار میکنم. یعنی هر شمارش باید در 10000000/1 ثانیه (100nS) انجام بشه.
اما در هر بار که وقفه تایمر رخ میده، یه تأخیر اضافی بوجود میاد.
اگه عدد 100 رو برای تایمر قرار بدی، به جای 10uS = 100*100nS اعمال وقفه بعد 17uS رخ میدهد.
و این 7uS همیشه به طور ثابت به زمان وقفه اضافه میشود. (حتی اگه تعدا شمارش رو تغییر بدی.)
مشکل چیه؟
دیدگاه