مهندس کدهایی که کدویژن داده برای پیکربندی وقفه اینهاست(دیگه حال نداشتم کتاب رو بخونم
)
gicr|=0x40;
mcucr=0x01;
mcucsr=0x00;
gifr=0x40;
یعنی خودتون صحیح فرمودید
مشکل ازجایی شروع شد که من فکر میکردم کنترل من rc5 هستش چون مال 10 سال پیشه ولی هرچی برنامه می نوشتم برمبنای rc5 درست در نمیومد برای همین اینجوری نوشتم
وقتی خروجی از0 رفت به 1 مقدار تایمر (من با تایمر1 نوشتم چون 16بیتیه) ذخیره میشه و بعد تایمر صفر میشه و وقتی از 1 به 0 رفت باز مقدار تایمر ذخیره میشه و دوباره تایمر صفر میشه تا وقتی مثلا 20 بار وقفه اتفاق بیفته که میشه 10 بیت چون شما توی هر بار وقفه نصف سیکل رو میخونید
بعد از این که 2بار کد رو گرفتید و توی 2تا آرایه ذخیره کردید حالا باید باهم مقایسه بشه ولی( مثلا تایمر اگه با فرکانس فرضا 1مگا هرتز کار بکنه میشه هر 1میکرو ثانیه افزایش پیدا میکنه) برای دوتا زمان مشابه 2تا عدد مختلف میده مثلا اگه قرار باشه 100 میکرو ثانیه رو بخونه یک بار 102 میده یک بار 99 یکبار 101 یا 98 حالا شما برای مقایسه اگه اسم یک متغیرت باشهa و اون یکی b نمیشه بنویسی
if(a==b)
باید بنویسی
if(a<b+5 && a>b-5)
اگه متوجه شدی بگو تا قسمت بعدی رو بگم
راستی شما مطمئنی که فرستنده شما rc6 هستش؟
(از کجا مطمئنید؟)