وضعيت: آفلاين 27 فروردين ماه ، 1388 تعداد ارسالها: 16 امتياز: 27 تشکر کرده: 0 تشکر شده 2 بار در 2 پست
محل سكونت: گرگان
ارسال شده در: پنجشنبه، 6 اسفند ماه ، 1388 23:36:17 موضوع مطلب: مشکل با تایمرها در atmega8
با سلام به مهندس لاچینی و شما دوستان
من یه برنامه با atmega8 نوشتم که یک فرکانس در محدوده ی 0 تا 200 هرتز از ورودی می گیره و اونو در 1.38 ضرب می کنه و فرکانس معادل اونو در خروجی میسازه. مثلا در ورودی فرکانس 100 هرتز می گیره و در خروجی فرکانس 138 هرتز میده. همه چیزم به خوبی کار میکنه. فقط یه مشکلی هست و اونم اینه که وقتی من فرکانس ورودی رو بسرعت افزایش میدم برای یه لحظه فرکانس خروجی من صفر میشه و بعد به حالت نرمال میرسه. اما عکس این قضیه صادق نیست! یعنی اگه من فرکانس ورودی رو به سرعت کم کنم فرکانس خروجی هم بدون اینکه صفر بشه به بسرعت کم میشه.
حالا من کدی رو که نوشتم اینجا قرار میدم تا دوستان و مهندس لاچینی ببینن که کدوم قسمت از کد اشتباهه و اصلا چرا همچین حالتی پیش میاد.
Start Timer1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do
Loop
End
One_secend:
If K = 62 Then
Stop Timer2
K = 1
Fin = Counter0
Fin = Fin * Scale
Tin = 1 / Fin
Tin = Tin / 2 'Diuration of '1's
Tout = 62500 * Tin
Tout1 = Tout 'convert single value to integer value
Compare1a = Tout1
Timer2 = 0
Counter0 = 0
Start Timer2
Else
Incr K
End If
Return
و اما توضیح مختصر این برنامه ، من از تایمر 2 برای تولید زمان یک ثانیه استفاده کردم و از اونجائیکه این تایمر 8 بیتی هست با توجه به فرکانس تراشه و مقدار Prescale در مدت یک ثانیه تقریبا 62 بار سر ریز میشه.
توسط کانتر 0 تعداد لبه های بالا رونده در این یک ثانیه (که توسط تایمر 2 ایجاد شد) رو شمردم که میشه همون فرکانس موج ورودی و اونو در 1.38 ضرب کردم و دوره ی تناوبشو بدست آوردم ، بعد بوسیله ی تایمر 1 فرکانس مناسب رو در خروجی ایجاد کردم (یعنی با معکوس کردن وضعیت خروجی تایمر 1).
وضعيت: آفلاين 27 فروردين ماه ، 1388 تعداد ارسالها: 16 امتياز: 27 تشکر کرده: 0 تشکر شده 2 بار در 2 پست
محل سكونت: گرگان
ارسال شده در: جمعه، 7 اسفند ماه ، 1388 19:23:36 موضوع مطلب:
از دوستان عزیز و مخصوصا مهندس لاچینی خواهش می کنم که کمک کنن. چون پای آبروم در میونه.
مهندس عزیز اگه وقتتون اجازه میده لطف کنید و در این مورد به من کمک کنید ، چون این یه موضوع کاریه و تمام مراحل به خوبی اجرا میشه بغیر از این مورد ، من باید این کار رو تا چند روز آینده تحویل یه شرکت فنی- مهندسی بدم ، واقعا برام عذاب شده.
نکته ی عجیب اینه که وقتی فرکانس از زیاد به کم تغییر می کنه هیچ مشکلی نیست ولی در جهت عکس یه لحظه صفر میشه.