امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کپچر و pwm
نویسنده پیام
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #12
RE: کپچر و pwm
چرا نمي خوايد از وقفه ي int استفاده كنيد؟!
در مورد مود تايمر و كانتر ، help بسكام رو كه نگاه كردم ، كپچر رو براي مود counter نوشته بود !
البته بنظر من اين معني نمي دهه و درستش اينه كه در مود تايمر امكان كپچر كردن باشه ! ( براي AVR خودم اين مورد رو تست نكردم )

نقل قول: اصلا ایا میشه از یه پایه به عنوان ورودی در این برنامه استفاده کرد؟
وروديه چي؟ چه نوع وروديي؟ براي چه كاري؟

نقل قول: البته من استفاده کردم ولی خیلی از پالسها رو رد میکنه.مخصوصا اگه تو برنامه از دستور ال سی دی استفاده کنیم
خوب اين هم چيز طبيعيي هست. فركانس PWM رو چند در نظر گرفتيد؟
فركانس پردازنده چندهه؟
بايد يه trade off اي برقرار كنيد ...!
خود توابع LCD و فرمان دادن و ... تايمينگ هاي خاصي دارهه كه بايد رعايت بشه تا نوشته روي LCD نشون داده بشه.
مسلما توان پردازشيه زيادي از پردازنده مي گيرهه ، چون شما هم جوري برنامه رو نوشتي كه مرتب بايد برهه به وقفه ، حالا اگر توي زير روال وقفه زياد بموني ، چون الان وقفه ي سراسري غير فعال هست ، حتي اگر پايه تريگ بشه ، ديگه نمي تونه برهه به وقفه! ( چون هنوز مرحله قبلي تمام نشدهه ... )
شما بايد خواستت رو معقول كني و توان ميكرو رو هم در نظر بگيري.
بهترين حالت اينه كه فركانس كاريه ميكرو رو max در نظر بگيري و فركانس PWM رو min در نظر بگيري و روال وقفه رو خيلي خلاصه بنويسي ، تا سريع بتونه از اون روال براي رخ دادن وقفه ي جديد خارج بشه ، اينجوري شايد اكثر پالس ها رو بتونه بگيرهه و چيزي رد نشه. ( شايد هم با اين كار بخاطر به هم زدن تايمينگ هاي دستور LCD ، چيزي كه مي خواي درست رو LCD نوشته نشه ( به شرطي كه دستور LCD در روال وقفه استفاده نشه ، براي GLCD كه حتما اين مشكل پيش مي ياد ، اما براي character LCD مطمئن نيستم و ياد ندارم. ) )

در ضمن ، كلا به وقفه رفتن و ... هم چند سيكل ساعت طول مي كشه ، همه چيز دقيقا در آنه واحد اتفاق نمي افته ...

موفق باشيد.

۱۷-اسفند-۱۳۹۱, ۱۸:۱۷:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : kelaran
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #13
RE: کپچر و pwm
فرکانس کاری من 500.فرکانس پالسی هم که به پایه کپچر میخوره 500.کریستال هم 16مگا.اخه من یه برنامه دیدم که دقیفا همون چیزی بود که من میخواستم.البته فایل هگزش.به این خاطر که سرعت کپچر بیشتره.لااقل در چند نموه از برنامه بهم ثابت شده.در ضمن به خاطر پرسکالهای مختلف قدرت مانور بیشتری داره.میشه در مورد trade off توضیح بدبد؟اینکه گفتم یه پایه ورودی یعنی اینکه مدام یه پین چک بشه و مثلا هر وقت یک شد بره به یه زیر برناه و رو السیدی که کلمه رو نشون بده یا یه پین رو یک کنه.
۱۷-اسفند-۱۳۹۱, ۲۳:۳۸:۳۶
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #14
RE: کپچر و pwm
پس فركانس PWM ورودي 500( Hz يا KHz هست؟ ( فكر كنم HZ منظورتون بودهه ، نه؟ )) ، فركانس كاريه خود ميكرو هم 16MHz .
اون برنامه اي كه ديديد ، الزاما ممكنه از روش شما استفاده نكرده باشه!
نقل قول: به این خاطر که سرعت کپچر بیشتره.لااقل در چند نموه از برنامه بهم ثابت شده.
بعيد مي دونم!
نقل قول: در ضمن به خاطر پرسکالهای مختلف قدرت مانور بیشتری داره.
اين ربطي به سرعت رفتن از برنامه به زير روال وقفه ندارهه! اون prescale براي كاربرد تايمر در شمارش هست كه الان موضوع بحث نيست.
نقل قول: میشه در مورد trade off توضیح بدبد؟
اين يه اصطلاح هست ، يعني همه ي عامل ها رو نمي توني با هم خوب كني ، اگر يه چيز خوب كني ، يه چيزي بد مي شه ، در نهايت بسته به نيازت بايد يه تعاملي برقرار كني ، به اين مي گن trade off

نقل قول: اینکه گفتم یه پایه ورودی یعنی اینکه مدام یه پین چک بشه و مثلا هر وقت یک شد بره به یه زیر برناه و رو السیدی که کلمه رو نشون بده یا یه پین رو یک کنه.
دقيقا به همين هدف پايه هاي int0,1 به وجود اومدن !
External interrupts
مطمئنن هم اولويت هم سرعت اين وقفه از بقيه بيشترهه و شك نكنيد. در زير روال وقفه از دستور LCD استفاده نكنيد.
در تنه ي برنامه ي اصلي دستورات LCD رو بنويسيد.
راستي از noise canceler هم استفاده كرده بوديد ، اون فقط مقدار 0 و 1 مي گيرهه ( طبق help ) روش كارش هم اينه كه به جايي كه در اولين پالس ساعت عمل كنه( بعد از تريگ شدن ) ، در 2ومي يا 3ومي عمل مي كنه كه مطمئن شه اثر نويز نيست ، و همين يعني تاخير در رفتن به وقفه و ...
توضيحات اين پست و پست قبلي رو با دقت بخون. روش پيشنهاديه من اين هست ...

موفق باشي.

۱۸-اسفند-۱۳۹۱, ۰۰:۵۶:۱۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : kelaran
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #15
RE: کپچر و pwm
بله فرکانس 500 هرتز.حالا بالاخره به نظر شما ایا میشه هم از مد کپچر استفاده کرد و هم از مد pwm و چیزی که میخوام اجرا بشه یا نه؟اگه میشه یه برنامه ساده واسم بنویسید ممنون میشم.راستی میشه یه توضیح کوچیک هم در مورد تفاوت بین کپچر و وقفه رو بدید.اخه من هرکجا برنامه ای دیدم میشد از هرکدوم جای اون یکی استفاده کرد.(البته منظورم کپچر در مد وقفه و int خارجی)در کل در کجاها میشه از کپچر استفاده کرد و در کجاها نمیشه.در مورد وقفه خارجی هم همینطور.آخه اینطوری بهتر میتونم در مورد این برنامه خودم و استفاده از کپچر یا وقفه خارجی تصمیم بگیرم.
۱۸-اسفند-۱۳۹۱, ۰۲:۴۱:۴۴
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

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

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #16
RE: کپچر و pwm
نقل قول: حالا بالاخره به نظر شما ایا میشه هم از مد کپچر استفاده کرد و هم از مد pwm و چیزی که میخوام اجرا بشه یا نه؟
اگه میشه یه برنامه ساده واسم بنویسید ممنون میشم.راستی میشه یه توضیح کوچیک هم در مورد تفاوت بین کپچر و وقفه رو بدید.اخه من هرکجا برنامه ای دیدم میشد از هرکدوم جای اون یکی استفاده کرد.(البته منظورم کپچر در مد وقفه و int خارجی)
توضيح دادم ديگه! اينطوري مجبورم جواب تكراري بدم ، يا كلا ندم!
براي AVR ياد ندارم ، اما كلا فلسفه اش اينه كه رجيستري داريم مخصوص كپچر، با تريگ كردن پايه ي خاصي امكان اين رو داريم كه مقدار timer\counter رو در لحظه ي تريگ شدن اون پايه بريزيم تو رجيستر capture .
شما با اين كارتون به وقفه مي ريد و يه كار ديگه انجام مي ديد!
كاربردي كه شما مي خواي ، همون external intrrupt هست ، پايه ي Intx .
-> شدنيه ، تو همون كدي كه نوشتي noise canceler رو غير فعال كن. اما باز توصيه ي من استفاده از وقفه ي خارجي هست.
نقل قول: در کل در کجاها میشه از کپچر استفاده کرد و در کجاها نمیشه.در مورد وقفه خارجی هم همینطور.
ابزار دست برنامه نويس هست و برنامه نويس بسته به نياز و خلاقيتش از اون ها استفاده مي كنه ...
هر جايي ، در هر شرايطي از هرچي بخواي مي توني استفاده كني و به جواب هم برسي.
اما منطقي تر اينه قابليتي رو فداي يه قابليت موجود نكني ، مثل الان كه از capture استفاده مي كني ، اما كاري به خودش نداري ، در صورتي كه پايه هاي Int هستن!

موفق باشي.

۱۸-اسفند-۱۳۹۱, ۱۰:۲۲:۴۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : kelaran
kelaran آفلاین
كاربر دو ستاره
**

ارسال‌ها: 76
موضوع‌ها: 14
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 61
( 13 تشکر در 12 ارسال )
ارسال: #17
RE: کپچر و pwm
از جواب و صبر و حوصله شما ممنون.اگه به کشل برخوردم حتما مزاحمتون میشم
۱۸-اسفند-۱۳۹۱, ۱۱:۵۳:۵۱
ارسال‌ها
پاسخ
david65 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 0
تاریخ عضویت: فروردین ۱۳۸۸

تشکرها : 0
( 4 تشکر در 2 ارسال )
ارسال: #18
RE: کپچر و pwm
دوست عزیز تا اونجایی که من میدونم از مد کپچر و pwm با فرکانس ۵۰۰ هرتز و فرکانس اسیلاتور ۱۶ مگاهرتز تو
مدارات فلزیاب استفاده شده اون هم مدار فلزیاب ماینر ۴ و مایندایور ۲
اما من واسه فلزیاب از همون وقفه intX استفاده کردم و مشکلی هم نداشتم پس اگه نمیتونید از مد کپچر استفاده
کنید بهتره از وقفه int استفاده کنید
(آخرین ویرایش در این ارسال: ۱۸-دى-۱۳۹۳, ۲۲:۱۹:۳۹، توسط david65.)
۱۸-دى-۱۳۹۳, ۲۱:۳۷:۴۹
ارسال‌ها
پاسخ
تشکر شده توسط : jamalmusic


پرش به انجمن:


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

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