دوستان من یه برنامه نوشتم و از interrupt تایمر صفر استفاده کردم که توی پروتیوس جواب میده ولی توی عمل جواب نمیده مشگل از کجاست؟
اطلاعیه
Collapse
No announcement yet.
مشگل در avr
Collapse
X
-
پاسخ : مشگل در avr
وقفه داخلیه از تایمر صفر استفاده کردم
داخل وقفه یه سری محاسبات مربوط به adc و کانتر هستش که مقدار adc را میخونه ولی توی زمانی که باید دوباره refresh بشه این کار انجام نمی شه و اگه دوباره میکرو را خاموش یا روشن کنیم مقدار adc جدید را میخونه
از از تایمر 1 هم به عنوان کانتر استفاده کردم
البته من داخل وقفه هم که یه led میذارم که روشن و خاموش بشه هم خوب کار نمی کنه
ممنون میشم اگه کمکم کنید
دیدگاه
-
پاسخ : مشگل در avr
زمان تایمرت را بیشتر کن (سرعت پائین تر) اگر کار کرد مشکل از overlap شدن دو سیکل پشت سر هم است ایضا در این حالت یه جایی وقفه ها دوباره فعال میشن.
برای رفعش یک متغیر عمومی بگیر و در هنگام بروز وقفه چک کن اگر مقدار غیر صفر داره سریعا برو بیرون و در غیر این صورت یک مقدار صفر بهش بده. محاسبات رو انجام بده. صفرش کن و بیا بیرون.
دیدگاه
دیدگاه