باسلام به دوستان
برنامه ای که لینک آن گذاشته شده است ، فرکانس ورودی به میکرو Avr ATmega16 را محاسبه و برروی lcd نمایش می دهد . تفاوت تکنیکی این برنامه به این صورت است که ابتدا تایمر 0 بصورت تایمری که هر 1 میکرو ثانیه وقفه اش اجرا میشود و در موقع فایر کردن تایمر صفر ، همزمان تایمر یک بصورت کانتر ( ورودی کلاک خروجی به پایه t1 ) تنظیم و در هنگام وقوع وقفه کانتر 1 ، تایمر صفر متوقف و مقدار زمانی خوانده می شود . از آنجا که تعریف ساده فرکانس عبارتست از تعداد تکانه در واحد زمان ، لذا هنگام وقوع وقفه کانتر 1 ما 65536 تکانه داریم که در مدت x میکرو ثانیه اتفاق افتاده اند . به همین سادگی با استفاده از یک تناسب ساده می توان تعداد تکانه (پالس) در واحد زمان (ثانیه) را محاسبه کرد.
این برنامه را می توان برای دیگر میکرو کنترلرهای که دارای تایمر / کانتر هستند استفاده کرد .
از دوستان تقاضامندم در صورت وجود الگوریتمی بهتر آنرا ارایه دهند.
باتشکر .
لینک :http://uploadrobots.com/WgEtAD
درضمن نظر یادتون نره.
برنامه ای که لینک آن گذاشته شده است ، فرکانس ورودی به میکرو Avr ATmega16 را محاسبه و برروی lcd نمایش می دهد . تفاوت تکنیکی این برنامه به این صورت است که ابتدا تایمر 0 بصورت تایمری که هر 1 میکرو ثانیه وقفه اش اجرا میشود و در موقع فایر کردن تایمر صفر ، همزمان تایمر یک بصورت کانتر ( ورودی کلاک خروجی به پایه t1 ) تنظیم و در هنگام وقوع وقفه کانتر 1 ، تایمر صفر متوقف و مقدار زمانی خوانده می شود . از آنجا که تعریف ساده فرکانس عبارتست از تعداد تکانه در واحد زمان ، لذا هنگام وقوع وقفه کانتر 1 ما 65536 تکانه داریم که در مدت x میکرو ثانیه اتفاق افتاده اند . به همین سادگی با استفاده از یک تناسب ساده می توان تعداد تکانه (پالس) در واحد زمان (ثانیه) را محاسبه کرد.
این برنامه را می توان برای دیگر میکرو کنترلرهای که دارای تایمر / کانتر هستند استفاده کرد .
از دوستان تقاضامندم در صورت وجود الگوریتمی بهتر آنرا ارایه دهند.
باتشکر .
لینک :http://uploadrobots.com/WgEtAD
درضمن نظر یادتون نره.

دیدگاه