در میکروکنترلر AVR اصولا برای ساخت یک زمان کاملا دقیق که به تناوب کاری در آن انجام شود و هیچ خطای نرم افزاری هم وجود نداشته باشد، از مد CTC و فعال سازی وقفه تایمر استفاده می شود. سپس در روتین وقفه تایمر مذکور، عمل مورد نظر انجام می شود و می توان در مضاربی از زمان ساخته شده هم کارهای دیگری را انجام داد. مثلا اگر یک زمان یک میلی ثانیه بصورت دقیق ساخته شود، می توان در هر 100 بار وقوع این وقفه که معادل 1. ثانیه است، کار دیگری را انجام داد و در مضارب دیگر هم به همین ترتیب عمل کرد. البته باید توجه کرد که منظور در اینجا زمان های کاملا دقیق هستند و استفاده از روش هایی مانند دستورات delay و مانند آن مورد نظر نیست و حتی یک سیکل خطای میکروکنترلر هم قابل قبول نیست.
هدف در این تاپیک توضیح دادن روشی است که بتوان با یک تایمر واحد AVR به تعداد رجیسترهای OCR تایمر، زمان های کاملا مستقل و دقیقی را که هیچ ربطی هم به هم ندارند و مضربی از یکدیگر نیستند، ایجاد کرد. مثلا در ATmega64 بتوان 8 وقفه زمانی کاملا مستقل و دقیق را که رابطه ای بین آنها وجود نداشته باشند، ایجاد کرد(در mega64 تعداد 8رجیستر OCR وجود دارد).
قبل از توضیح روش مذکور از دوستانی که بصورت پیشرفته با AVR برنامه نویسی می کنند درخواست می شود نظر و راه حل خود را درباره این صورت مسئله بیان کنند.
هدف در این تاپیک توضیح دادن روشی است که بتوان با یک تایمر واحد AVR به تعداد رجیسترهای OCR تایمر، زمان های کاملا مستقل و دقیقی را که هیچ ربطی هم به هم ندارند و مضربی از یکدیگر نیستند، ایجاد کرد. مثلا در ATmega64 بتوان 8 وقفه زمانی کاملا مستقل و دقیق را که رابطه ای بین آنها وجود نداشته باشند، ایجاد کرد(در mega64 تعداد 8رجیستر OCR وجود دارد).
قبل از توضیح روش مذکور از دوستانی که بصورت پیشرفته با AVR برنامه نویسی می کنند درخواست می شود نظر و راه حل خود را درباره این صورت مسئله بیان کنند.
دیدگاه