پاسخ : استفاده از کانتر
ببینید دوست عزیز تو این حالت شما از دو کانتر میکرو استفاده میکنید و هر دو به صورت افزایشی شمارش میکنند اما یکیش فقط در صورت فعال بودن بیت direction شمارش میکنه و دیگری در حالت غیر فعال بودن این بیت، مثلا اولا بیت direction یک هست و باید شمارش شما افزایشی باشه و فرض کنید تو این حالت 1000 تا پالس میاد، پس کانتر اول تا 1000 میشمره و کانتر دوم همچنان صفر باقی میمونه. حالا بیت جهت صفر میشه، کانتر دوم شروع میکنه به شمارش پالس ها و کانتر اول روی همون 1000 باقی میمونه، حالا تفاضل عدد کانتر اول و دوم در هر لحظه مجموع پالس ها رو با توجه به جهت چرخش نشون میده مثلا اگه 100 تا پالس در جهت معکوس بیاد عدد کانتر دوم 100 میشه و تفاضل دو کانتر میشه 900، همون عددی که یک کانتر افزایشی کاهشی باید نشون بده.
نوشته اصلی توسط yadegari
دیدگاه