امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 2
  • 1
  • 2
  • 3
  • 4
  • 5
بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
نویسنده پیام
shervin24 آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #1
بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
با سلام و خسته نباشيد.
با بسكام اين برنامه رو بايد بنويسم.
چطوري بايد اين كار رو انجام بدم؟
زمان روشن بودن يك شكل موج مربعي با فركانس 50 هرتز.
كريستال 8 مگا هرتز استفاده ميكنم و ميكرو هم مگا 8 هستش.
ممنون ميشم كمك كنيد.
(آخرین ویرایش در این ارسال: ۱۸-مهر-۱۳۹۲, ۲۰:۳۲:۴۳، توسط babyy.)
۱۸-مهر-۱۳۹۲, ۱۷:۵۹:۱۲
ارسال‌ها
پاسخ
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #2
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
سلام
سیگنال رو به adc میکرو بدید و توسط تایمر زمان 0 و 1 بودن رو محاسبه کنید

برنامه رو شروع کنید
مشکلی بود خودم یا دوستان کمک می کنیم

خوش باشید.

۱۸-مهر-۱۳۹۲, ۲۰:۳۲:۰۲
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, hadikh73
shervin24 آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
(۱۸-مهر-۱۳۹۲, ۲۰:۳۲:۰۲)r0b0 نوشته است: سلام
سیگنال رو به adc میکرو بدید و توسط تایمر زمان 0 و 1 بودن رو محاسبه کنید

برنامه رو شروع کنید
مشکلی بود خودم یا دوستان کمک می کنیم

خوش باشید.


ميشه بيشتر راهنمايي ميكنيد.
سيگنال رو به adc بدم ، با تايمر محاسبه كنم؟
چطوري؟
البته يه چيزايي نوشتم. ولي فكر كنم چون دقيق نميدونم چطوري بنويسم به مشكل خوردم.
۱۸-مهر-۱۳۹۲, ۲۰:۴۱:۴۹
ارسال‌ها
پاسخ
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #4
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
(۱۸-مهر-۱۳۹۲, ۲۰:۴۱:۴۹)shervin24 نوشته است: ميشه بيشتر راهنمايي ميكنيد.
سيگنال رو به adc بدم ، با تايمر محاسبه كنم؟
چطوري؟
البته يه چيزايي نوشتم. ولي فكر كنم چون دقيق نميدونم چطوري بنويسم به مشكل خوردم.

سیگنال رو بصورت 0 و 1 میدید به یکی از پایه های adc میکرو
طی برنامه مقدار adc رو میخونید و با شرط if تعریف می کنید که اگه پایه adc برابر 1 شد به زیربرنامه x برو و تایمر رو فعال کن و تا زمانی که پایه 0 نشده ، تایمر رو غیرفعال نکن
بعد با یه شرط دیگه تعریف می کنید که اگه مقدار adc برابر 0 شد، تایمر رو نگه دار و مقدار تایمر رو در تو یه متغیر بریز
بعد مقدار متغیر رو میخونید و با یه سری محاسبات مقدار زمان 1 بودن پایه رو حساب می کنید.
واسه محاسبه زمان 0 بودن پایه هم همین کار رو انجام میدید و یه طی یه زیربرنامه دیگه، مقدار زمانی که تایمر 0 بوده رو در یه متغیر دیگه میریزید و میخونید
نهایتا کافیه از دوتا مقدار زمان 0 و 1 بودن پایه درصد بگیرید تا دیوتی سایکل duty cycle بدست بیاد...


خوش باشید.

۱۸-مهر-۱۳۹۲, ۲۱:۴۲:۴۱
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, hadikh73
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #5
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
البته نيازي به ADC هم نيست. به يه پايه ي معمولي هم مي تونيد بديد و سطح رو چك كنيد و تايمر رو راه بندازيد.
يا با وقفه خارجي و تايمر.
معقول تر اينه كه با يه تايمر اين كار رو كنيد ، خود بسكام هم فكر مي كنم يه تابع براي تعيين عرض پالس دارهه كه يكي از تايمر ها رو درگير مي كنه.

۱۸-مهر-۱۳۹۲, ۲۲:۰۷:۰۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, hadikh73
shervin24 آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #6
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
(۱۸-مهر-۱۳۹۲, ۲۲:۰۷:۰۷)sharin نوشته است: البته نيازي به ADC هم نيست. به يه پايه ي معمولي هم مي تونيد بديد و سطح رو چك كنيد و تايمر رو راه بندازيد.
يا با وقفه خارجي و تايمر.
معقول تر اينه كه با يه تايمر اين كار رو كنيد ، خود بسكام هم فكر مي كنم يه تابع براي تعيين عرض پالس دارهه كه يكي از تايمر ها رو درگير مي كنه.

من اين برنامه رو نوشتم. فكر ميكنم درست باشه. ولي توي پروتئوس كه شبيه سازي ميكنم جواب نميگيرم.(فايل اتچ شده)

البته با دستور pulsein هم برنامش رو نوشتم تئوري توي پروتئوس جواب ميده ، ولي در عمل من بستم، جواب نگرفتم.
فكر ميكنم ميكروم هنگ ميكنه.
(اون رو هم ميذارمش)


فایل‌(های) پیوست شده
.rar   T on projects.rar (اندازه: 39.87 KB / تعداد دفعات دریافت: 82)
(آخرین ویرایش در این ارسال: ۱۹-مهر-۱۳۹۲, ۱۶:۱۲:۲۴، توسط shervin24.)
۱۹-مهر-۱۳۹۲, ۱۵:۵۱:۱۵
ارسال‌ها
پاسخ
shervin24 آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 1
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #7
RE: بدست آوردن duty cycle موج مربعي با ميكرو و تايمر
(۱۹-مهر-۱۳۹۲, ۱۵:۵۱:۱۵)shervin24 نوشته است:
(۱۸-مهر-۱۳۹۲, ۲۲:۰۷:۰۷)sharin نوشته است: البته نيازي به ADC هم نيست. به يه پايه ي معمولي هم مي تونيد بديد و سطح رو چك كنيد و تايمر رو راه بندازيد.
يا با وقفه خارجي و تايمر.
معقول تر اينه كه با يه تايمر اين كار رو كنيد ، خود بسكام هم فكر مي كنم يه تابع براي تعيين عرض پالس دارهه كه يكي از تايمر ها رو درگير مي كنه.

من اين برنامه رو نوشتم. فكر ميكنم درست باشه. ولي توي پروتئوس كه شبيه سازي ميكنم جواب نميگيرم.(فايل اتچ شده)

البته با دستور pulsein هم برنامش رو نوشتم تئوري توي پروتئوس جواب ميده ، ولي در عمل من بستم، جواب نگرفتم.
فكر ميكنم ميكروم هنگ ميكنه.
(اون رو هم ميذارمش)
لطفا راهنمايي كنيد.
خواهش ميكنم.

لطفا راهنمايي كنيد.
كسي نيست؟ بتونه كمك كنه؟
(آخرین ویرایش در این ارسال: ۲۲-مهر-۱۳۹۲, ۲۲:۲۱:۲۸، توسط shervin24.)
۲۲-مهر-۱۳۹۲, ۲۲:۱۹:۵۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] چگونگي غير فعال كردن jtag از روي ميكرو rezadaneshgoo 13 18,410 ۰۱-آذر-۱۳۹۵, ۱۳:۳۵:۳۵
آخرین ارسال: sasami
  مشكل در برنامه ارتباط بين دو ميكرو hossein6355 6 6,252 ۲۱-اسفند-۱۳۹۰, ۱۵:۰۰:۴۹
آخرین ارسال: hossein6355
  [سوال] چگونگي فعال نمودن چند pwm توسط يك ميكرو rdscience 4 6,745 ۱۰-مرداد-۱۳۹۰, ۰۶:۵۱:۱۴
آخرین ارسال: rdscience
  تغذيه ميكرو ECM-tank 11 7,671 ۱۲-فروردین-۱۳۹۰, ۱۵:۳۰:۴۶
آخرین ارسال: reza555
  ساخت يك آزمايشگاه ميكرو كنترلر خانگي silent70un 3 3,359 ۲۷-اسفند-۱۳۸۹, ۲۰:۵۹:۳۷
آخرین ارسال: reza555

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS