سلام .من میخوام باcodevision یه برنامه بنویسم که فرکانس پالس مربعی (رنج فرکانس بین 1 هرتز تا 1 مگاهرتز)ایجادشده روی پایه T0 میکروatmega32 را روی
lcd کاراکتری نمایش بده.اگه ممکنه در مورد چگونگی ایجاد پالس مربعی و اندازه گیری و نمایش فرکانس آن روی lcd کاراکتری راهنمایی ام کنید
سلام.کسی توی سایت نیست که بتونه راهنمایی کند خیلی ضروریه
سلام.
1-از PWM استفاده كنيد و duty cycle رو برابر 50% در نظر بگيريد. البته روي پايه ي T0 ايجاد نمي شه و روي خروجي هاي خود PWM هست.
2- از تايمر استفاده كنيد و باهاش زمان بسازيد ، براي اينكار نيازهه مرتب به وقفه بريد و خلاصه در جاي مناسبش يكي از پايه ها رو toggle مي كني. اگر از تايمر0 استفاده كني باز نمي توني اين خروجي رو روي پايه ي T0 ( يا درستترش B0 ) داشته باشي.
البته 1MHz زياد هست و مطمئن نيستم بتونه همچين فركانسي رو درست كنه ... .
براي كد زني هم بايد با ريجسترهاشون آشنايي داشته باشيد و codewizard هم راهنماي خوبي هست ،به هر صورت ديتاشيت يا يه كتاب مرجع بايد كنار دستتون باشه.
روش اولي كه گفتم ساده ترهه.
موفق باشيد.
ممنون.اگه ممکنه روش تایمر بیشتر توضیح بدید
هسته ي PWM هم يه تايمر هست. با PWM اين كار رو انجام بديد، خيلي راحت تر هست و آسنكرونه و وقته CPU رو نمي گيرهه.
اگر بخوايد با تايمر اين كار رو كنيد بايد بلد باشيد با وقفه اش كار كنيد و بتونيد باهاش زمان دقيق بسازيد.
وقتي اينها رو بدونيد ، همون زمان مد نظر كه ساخته شد ، پايه ي مربوطه رو toggle مي كنيد. اون زمان مشخص همون دورهه تناوب يا بهتر بگم ، نصف دوره تناوب پالسي هست كه قصد توليدش رو داريد و بايد قابل تغيير باشه. با اين روش كمي از وقت CPU گرفته مي شه.
موفق باشيد.
(۱۰-اردیبهشت-۱۳۹۲, ۱۶:۴۹:۱۱)sharin نوشته است: [ -> ]هسته ي PWM هم يه تايمر هست. با PWM اين كار رو انجام بديد، خيلي راحت تر هست و آسنكرونه و وقته CPU رو نمي گيرهه.
اگر بخوايد با تايمر اين كار رو كنيد بايد بلد باشيد با وقفه اش كار كنيد و بتونيد باهاش زمان دقيق بسازيد.
وقتي اينها رو بدونيد ، همون زمان مد نظر كه ساخته شد ، پايه ي مربوطه رو toggle مي كنيد. اون زمان مشخص همون دورهه تناوب يا بهتر بگم ، نصف دوره تناوب پالسي هست كه قصد توليدش رو داريد و بايد قابل تغيير باشه. با اين روش كمي از وقت CPU گرفته مي شه.
موفق باشيد.
سلام دوست عزیز
نمیدونم این پست پاسخ داده خواهد شد یا نه! به هر حال...میشه در مورد روش اول منظورم PWM بیشتر توضیح بدید.اندازه گیری فرکانس یک پالس با Pwm ...
سلام.
با PWM می شه موج تولید کرد ، فرکانس نمی شه اندازه گرفت.
برای اندازه گیریه فرکانس باید تایمر به صورت counter تعریف کنید و با ساخت زمان یک ثانیه با یک تایمر دیگر ، تعداد پالس های شمرده شده توسط کانتر رو به عنوان مقدار فرکانس اندازه گیری شده نمایش بدید.
یعنی 2 تا تایمر مورد نیازهه ، نمونه مثال هم در فروم هست، اگر کمی سرچ بزنید ... .
موفق باشید.