درود . استفاده از تاخیر در این قسمت کار درستی نیست . وقفه رو باید طوری تنظیم کنید (از طریق wizard یا مستقیم با رجیسترهای وقفه) که با لبه پالس فعال بشه با این ترتیب دیگه مشکل تحریک چند بار رو ندارید و تا زمانی که پالس ورودی در وضعیت فعال هست وقفه ای ندارید و فقط در موقع صعود یا نزول پالس وقفه ایجاد میشه . به عنوان مثال برای وقفه صفر : MCUCR = 2; // وقفه در لبه رو به پایین MCUCR = 3; // وقفه در لبه رو به بالا
البته این به شرطیه که سخت افزار شما تحریک اضافی ایجاد نکنه و دقیقا به ازای هر دور چرخش یک پالس بده . ریختن یک متغییر نوع ّInt درون PORTA هم باعث سر ریز میشه (بعد از 255 دور چرخش) . یه تست کنید ببینید چی میشه و اگه مشکلی بود سخت افزارتون رو هم تشریح کنید که به چه صورتیه . _______________________________________________________________________ پروژه های حرفه ای الکترونیک و کامپیوتر در www.khazama.com
مجموعه متن باز نامهای اصیل ایرانی
وبلاگ نوشته های شخصی من
|