ايران ويج

نسخه‌ی کامل: کپچر و pwm
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام من یه برنامه نوشتم به زبان بیسیک.تو برنامه هم از مد کپچر استفاده کردم و هم از pwm.اما مشکل من اینه که زمانی که به کپچر دستور میدم به لبه بالارونده حساس باشه به خاطر استفاده از دستور pwm در برنامه،در بهترین حالت 5میکرو بعد از اینکه پالس ورودی صفر شد کپچر میره زیر برنامه رو اجرا میکنه در حالی که اگه دستور pwm رو ننویسم برنامه درست اجرا میشه.من یه مثال گذاشتم امیدوارم که کمکم کنید.در ضمن من تو برنامه به pwm نیاز دارم واسه یه قسمت از مدار
کسی ز دوستان نیست که جواب مارو بده؟
مهندس شما تايمر 1 رو اومدي يه صورت تايمر پيكربندي كردي ،‌بعد خط بدش به صورت PWM !
آخرش كدومي هست؟!
دو جور كه نمي تونه پيكربندي بشه ، بايد از 2 تا تايمر استفاده كنيد و يكي رو تايمر پيكربندي كني و ديگري رو PWM .

موفق باشي.
خوب من اومدم یکی رو تو مد تایمر 2 استفاده کردم (کپچر رو تو مد تایمر دو استفاده کردم)اما باز نشد.اگه میشه خودتون تصحیح کنید ممنون میشم
شما اگه راهحل دارید خواهشا ارایه کنید من موندم چه کار کنم
دوستان ما همچنان منتظر کمک شما هستیم.چون هرکاری میکنم به بن بست میخورم
خواهشا یکی کمک کنه چند روزه که بدجوری وقتم رو گرفتم
مهندس از انجام اين پروژه چه هدفي داري و مي خواي به چي برسي؟
كجاي برنامه درست كار نمي كنه؟
در پروتوس فقط تست كرديد يا عملا هم بستيد؟
پروتوس كلا قابل اعتماد نيست ، سعي كنيد عملي تست كنيد.
اوالا من تشکر میکنم از شما که جواب منو دادید.من اگه از pwm استفاده نکنم مشکل حله.ولی به pwm نیاز دارم.دارم یه مدر طراحی میکنم که یه قسمت رو سوییچ میکنه و چون باید پهنای پالس تغییر کنه و پالس هم باید دقیق باشه از pwm استفاده کردم.500 هرتزاز طرفی یه پالس دارم که به پایه کپچر متصل میشه و هر وقت این پالس یک شد کپچر بره زیر برنامه رو اجرا کنه.اما هر کاری میکنم در بهترین حالت 5میکرو بعد از اینکه پالس ورودی صفر شد کپچر زیر برنامه رو اجرا میکنه.من یه برنامه شبیه به این البته هگز اون رو داشتم اما الان گمش کردم.تو پروتوس هم خیلی راحت اجرا میکرد.
اگر به جاي كپچر از اينتراپت خارجي استفاده كنيد بهتر نيست؟
capture رو فكر مي كنم بايد در مود counter استفاده كرد و كار اون اينه كه با تريگ كردن يه پايه ، مقدار رجيستر شمارنده ي تايمر/كانتر رو به رجيستر capture منتقل مي كنه.
اگر هدفتون رو درست متوجه شدهه باشم ، مي تونيد از پايه هاي int0 و يا int1 ميكرو استفاده كنيد ( به جاي capture ) كه بيشترين اولويت در وقفه رو هم دارن . حساسشون كنيد به لبه ي پايين رونده يا بالا رونده كه مد نظرتون هست و بريد به روال وقفه ...
اگر اون تاخير رفع نشد ، در سطح ريجستر كد بزنيد و ترجيحا از كامپايلر ديگه اي استفاده كنيد.
البته خودم شخصا هيچوقت به نتايج پروتوس اعتماد نمي كنم و معمولا استفاده نمي كنم!

موفق باشيد.
نه من نمیخوام از مد وقفه int استفاده کنم تو مد کانتر هم استفاده کردم نشد.اصلا ایا میشه از یه پایه به عنوان ورودی در این برنامه استفاده کرد؟البته من استفاده کردم ولی خیلی از پالسها رو رد میکنه.مخصوصا اگه تو برنامه از دستور ال سی دی استفاده کنیم
صفحه‌ها: 1 2