اینکه دوبار مینویسه ممکنه در اثر تحریک شدن مجدد وقفه باشه (دقت کنید که وقفه در اثر یک لبه فعال بشه مثلا لبه رو به بالا) . اولی که روال وقفه شروع میشه بهتره وقفه رو غیر فعال کنید میتونید با این کد تمام وقفه ها رو قطع کنید #asm("cli"); و موقع خروج از روال وقفه دوباره وقفه رو فعال کنید : #asm("sei"); علت لرزش هم تغییر دور موتوره . پس چون دور موتورتون ثابت نیست نیاز دارید یه جوری با دور موتور در هر دور همزمان بشید . مثلا همون طور که گفتید زمان هر دور رو در محاسبه کنید و توی تاخیرها لحاظ کنید تا اگه سرعت موتور تغییر کرد بازهم تاخیرها به مقدار واقعی نزدیک باشن . اگه از موتور سیلندر هارد استفاده کنید چون استپر موتوره هم دیگه نیاز به سنسور ندارید هم دورش تغییر نمیکنه و هم سرعت خوبی داره . _______________________________________________________________________ پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من
|