NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4483 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 24

موضوع: سوالی در مورد pwm نرم افزاری

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    Thumbs up سوالی در مورد pwm نرم افزاری

    با سلام خدمت دوستان . خواهشن این سئوالو پاسخ بدید ؟

    من می خوام از یک میکرو atmega16 پانزده عدد موج pwm بگیرم . شنیدم با pwm نرم افزاری میشه ولی هیچ جا مطلب کاملی دربارش پیدا نکرم . دوستان اگه کسی کار کرده با بسکام که نمونه کدی با توضیحاتش کوتاه قرار بده ممنون میشم .

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام

    برای داشتن یک موج pwm مناسب شما حتما باید از تایمر/کانترها استفاده کنید. اگه می خواید بصورت نرم افزاری و بدون استفاده از تایمر/کانترها موج pwm بسازید باید یه پایه ای رو در زمانهای مورد نظر صفر و یک کنید. که اینم سخته ، چون برای ایجاد زمانهای دقیق نیاز به تایمرها دارید ، حالا با دو - سه تا تایمر 15 تا فرکانس مختلف ساختن مشکله! البته اگه فرکانس ها مضربی از هم باشن (مثلا یکی 2 کیلو هرتز و دیگری 1 کیلو و بعدی 500 هرتز و ...) باز میشه یه کارایی کرد.

    در کل انجام این کار سخته و نتیجه جالبی هم نداره دادا.

    اصلا 15 تا pwm متفاومت می خوای چیکار؟ فرکانس هاشون فرق داره یا اینکه به 15 خروجی متفاوت نیاز داری؟
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  5. کاربران : 2 تشکر کرده اند از شما morteza_rk برای ارسال این پست سودمند:


  6. #3
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط starsoheil نمایش پست ها
    من می خوام از یک میکرو atmega16 پانزده عدد موج pwm بگیرم .
    با سلام
    دوست عزيز ميتونيد بيشتر توضيح بديد كه منظورتون چيه؟
    دقيقا ميخوايد چي كار كنيد؟
    _____________________________________
    _____________________________________

  7. تشکرها از این نوشته :


  8. #4
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    با سلام . ممنون از پاسخ شما

    من می خوام یک تابلوی فول کالر با rgb led بسازم . می دونید که برای یک تابلو با مثلا 2000 led نیاز در هر لحظه یک pwm برای هر لامپ ارسال بشه (هر پیکسل رنگ خاص خودشو داره ) . حالا من می خوام مثلا از 20 تا میکرو at16 برای هر 5 لامپ یک میکرو استفاده کنم که با همکاری میکرو ها تصوریم کامل بشه .

  9. تشکرها از این نوشته :


  10. #5
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    دایی جان این کاری که میخوای بکنی میشه ولی نه با بیسیک و سی ، با اسمبلی ،
    شاید با سی هم بشه ولی نتیجه دلخواه رو نخواهد داد، چرا که دوره تناوب موج اونقدر بالا در نمیآد ، من قبلا با اسمبلی این کار رو کردم و 96 تا led رو کنترل نور کردم با یه مگا16 ولی کد با اسمبلی بوده نه بیسیک

  11. کاربران : 3 تشکر کرده اند از شما agape برای ارسال این پست سودمند:


  12. #6
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    خوب مگه زبان فرق میکنه ؟ اگه با اسمبلی بشه با بیسیکم میشه ؟

  13. تشکرها از این نوشته :


  14. #7
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    خوب مگه زبان فرق میکنه ؟ اگه با اسمبلی بشه با بیسیکم میشه ؟
    دادا زبان ها با هم خیلی فرق می کنن. در یک تقسیم بندی جزئی میشه زبان هارو به سه دسته تقسیم کرد :

    1. زبان های سطح پائین : مثل زبان اسمبلی که به زبان ماشین نزدیکه و از زبان انسان دوره. برای برنامه نویسی به این زبان باید با لایه های سخت افزاری بطور کامل آشنا باشین. انواع حافظه ها رو بشناسید رجیسترهارو بشناسید قادر به مقداردهی به اونها باشید و ....

    2. زبان سطح میانه : مثل زبان C ، این نوع زبان دارای کلماتی هست که در زبان های انسانی هم پیدا میشه مثل if ، Case ، while و .... اما برای پیکره بندی امکانات سخت افزاری نیازه که تا حدود بسیار زیادی به سخت افزار آشنایی داشته باشین.

    3. زبان های سطح بالا : مثل زبان بسکام و پاسکال ، این زبانها هم مثل زبان سطح میانه دارای کلماتی از زبان انسانی هست. اما برای برنامه نویسی نیازی نیست تا برنامه نویس آشنایی زیادی با لایه های سخت افزاری داشته باشه. و یه آشنایی اجمالی کفایت می کنه. این نوع زبان ها دارای توابع بیشماری هستن که این امکان رو میده تا بتونید براحتی سخت افزار رو بکار بگیرید بدون اینکه پروتکل اون سخت افزار رو بشناسید.

    حالا از نظر کارائی بهترین زبان همون زبان اسمبلی هست که میشه سرعت اجرای تک تک دستوراتش رو هم اندازه گرفت. اما خیلی خیلی سخته و رفع اشکال کردنش هم واقعا دشواره. اما با این وجود گاهی اوقات ناگزیریم که از این زبان استفاده کنیم. حتی در زبان های سطح بالا گاهی وقتا لازمه که بعضی از قسمت های برنامه به زبان اسمبلی نوشته بشن و معمولا برنامه نویس های حرفه ای همیشه از این تکنیک استفاده می کنن.

    بطور کلی برنامه ای که با زبان اسمبلی نوشته میشه هم حجم کد کمتری بعداز کامپایل شدن ایجاد می کنه و هم اینکه سرعت و دقت اجرای بیشتری نسبت به سایرین داره.

    زبان های سطح میانه از نظر حجم کد تولیدی و سرعت اجرا از زبان های سطح بالا بهترن. اما در سرعت های بالا این تفاوت زیاد به چشم نمیاد. و اگه واقعا نیاز به ایجاد یک تفاوت محرز باشه بجای زبان سطح بالا از زبان اسمبلی استفاده می کنن نه از یک زبان سطح میانه.

    بطور کلی هر کاری که بشه با زبان های سطح میانه انجام داد با زبان سطح بالا هم میشه انجام داد و برعکس. اما هر کاری که با زبان اسمبلی میشه انجام داد رو نمی تونیم با زبان های دیگه انجام بدیم یا انجامش به هیچ عنوان توجیحی نداره. (تعداد این جور موارد خیلی خیلی کمه ، اما بهرحال وجود دارن دیگه).

    اگه جائی رو اشتباه گفتم لطفا راهنمائیم کنید.
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  15. کاربران : 4 تشکر کرده اند از شما morteza_rk برای ارسال این پست سودمند:


  16. #8
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    دایی جان درست گفتی ، کارت حرف نداره
    برای روشن تر شدن موضوع مثال میزنم ، زباین سی رو با اسمبلی مینویسن ، و زبان بیسیک رو با زبان سی مینویسن ، حالا به نظر شما سی که خودش رو با زبان اسمبلی نوشتن قدرتش به اسمبلی میرسه ! نه !
    مثل رابطه خالق و مخلوقی می مونه ، مخلوق هیچ وقت به اندازه خالق توانایی نداره، حالا بیسیک هم که دو پله از اسمبلی دوره ، یعنی تحت هیچ شرایطی نمیشه سرعت و کاری رو که با اسمبلی میشه انجام داد با بیسیک انجام داد!

  17. کاربران : 4 تشکر کرده اند از شما agape برای ارسال این پست سودمند:


  18. #9
    مدیر انجمن M.ABDOLLAHI آواتار ها
    تاریخ عضویت
    Dec 2008
    نام
    مهدی عبدالهی
    نوشته ها
    976
    تشکر
    1,567
    تشکر شده 2,677 بار در 667 پست

    Red face

    راه حلش اینه که از وقفه تایمر استفاده کنی یعنی در ثانیه مثلا هزار مرتبه به روتین وقفه بری و وضعیت پایه ها را تغییر بدهی در ضمن میتوانی با لچ خروجی هایت را افزایش بدهی دوست من با همین روش تابلو رنگی و بیلبورد درست میکنه .... البته تا اونجائی که من یادمه avrco ،pwm نرم افزاری در کتابخانه هایش دارد.
    ویرایش توسط M.ABDOLLAHI : 07-01-2012 در ساعت 10:03
    و هر كس از ياد [خداى‏] رحمان دل بگرداند، بر او شيطانى مى‏گماريم تا براى وى دمسازى باشد. (36)و مسلّماً آنها ايشان را از راه باز مى‏دارند و [آنها] مى‏پندارند كه راه يافتگانند. (37)تا آن گاه كه او [با دمسازش‏] به حضور ما آيد، [خطاب به شيطان‏] گويد: «اى كاش ميان من و تو، فاصله خاور و باختر بود، كه چه بد دمسازى هستى!» (38)(سوره زخرف)بگو: «پليد و پاك يكسان نيستند، هر چند كثرت پليد [ها] تو را به شگفت آوَرَد. پس اى خردمندان، از خدا پروا كنيد، باشد كه رستگار شويد.» (100)(سوره مائده(

  19. کاربران : 3 تشکر کرده اند از شما M.ABDOLLAHI برای ارسال این پست سودمند:


  20. #10
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    Icon16 ممنون

    ممنون ولی من مهندس کامپیوتر هستم و فرق بین زبانهای برنام نویسی را میدونم . ولی اینو بگم در کامپیوتر اگر برنامه ای را با اسمبلی بشه نوشت حتما با c++ هم میشه نوشت .

    یه چیز دیگه . اصلا من یک کاره دیگه کردم از pwm سخت افزاری استفاده کردم . و از یک اینکودر 74154 هم برای آدرس دهی پایه های منفی rgb led هام استفاده کردم .(میخوام بگم هر موج الان برای کدون از 16 لامپ ارسال بشه ) حالا فقط یک مسئله دارم اینکه : ساخت یک pwm و تغییر سریع اون بایه ها با یک pwm دیگه یک تاخیر کوچکی داره که مشکل سازه و باعث میشه ال ای دی هام چشک بزنن . (حتی اگر یک ال ای دی هم به طور مستقیم وصل به میکرو باشه . و سریع بخوام pwm را عوض کنم ال ای دی کامل خاموش شده و دوباره با Pwm جدید روشن میشه .)

    به نظر شما چه کار باید بکنم .

  21. تشکرها از این نوشته :


  22. #11
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    من قبلا دنبال اينكار بودم.
    و با ميكرو تونستم 24 كانال pwm بگيرم.
    اما يه مشكلي بودش وسط كه الآن يادم نمياد چي بود.



    بعد از چند وقت برگشتم



  23. کاربران : 3 تشکر کرده اند از شما shayanmelody برای ارسال این پست سودمند:


  24. #12
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    يادم اومد !
    مشكل سرعت پايين ميكرو بود.
    چون برنامه معكوس كردن پايه ها تو وقفه تايمر بود و وقتي كه تعداد دستورات تو وقفه زياد شد ،‌تاثيرش تو نور led ها محسوس بود.



    بعد از چند وقت برگشتم



  25. کاربران : 3 تشکر کرده اند از شما shayanmelody برای ارسال این پست سودمند:


  26. #13
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    نقل قول نوشته اصلی توسط shayanmelody نمایش پست ها
    يادم اومد !
    مشكل سرعت پايين ميكرو بود.
    چون برنامه معكوس كردن پايه ها تو وقفه تايمر بود و وقتي كه تعداد دستورات تو وقفه زياد شد ،‌تاثيرش تو نور led ها محسوس بود.

    می تونید بگید چه جوری این کارو کردید ؟
    شماتیک و ... اگه بگذارید ممنون میشم .

    راهی هم واسه بالا بردن سرعتش هست ؟ شما چه کار کردید آخر واسه پروژتون ؟

  27. تشکرها از این نوشته :


  28. #14
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    سلام

    pwm نرم افزاری تا حدی جواب میده و نه تو اون تعداد، لا اقل.چون در این صورت سرعت میکرو باید زیاد باشه و اختصاص دادن همه وقفه ها هم به این منظور کار اشتباهی هست.شما می تونین از سری XMEGA استفاده کنین که هم از لحاظ سرعت بالاست و هم:

    24 خروجی PWM در سری A1

    22 خروجی PWM در سری A3

    16 خروجی PWM در سری A4

    18 خروجی PWM در سری D3

    14 خروجی PWM در سری D4

    سری D3 هم از لحاظ قیمت مناسب هستن و تفاوت زیادی با MEGA ندارن.

  29. کاربران : 6 تشکر کرده اند از شما pooriya برای ارسال این پست سودمند:


  30. #15
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    ممنون . ولی چون شیوه خودمو عوض کردم . یک سوال دیگه دارم ؟


    میشه من یک موج pwm بسازم و از سه پایه atmega16 خارج کنم و 500 میکرو ثانیه صبر کنم و سپس موج pwm سه پایه را قطع کنم و pwm جدیدی به همون پایه ها بدم و د وباره 500 میکرو ثانیه صبر و ادامه همین روند ... . در اصل می خوام تو تابلوم از یک نوع جاروب استفاده کنم . و می خوام ببینم آیا این عمل سریع انجام میشه که من لامپ ها را به طور چشمک زن نبینم ؟

  31. تشکرها از این نوشته :


  32. #16
    مدیر باز نشسته shayanmelody آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    شایان نیکزاد
    نوشته ها
    576
    تشکر
    283
    تشکر شده 1,038 بار در 473 پست

    پیش فرض

    ببین عزیز ، تو این تلویزیون های شهری که میبینی همشون استاتیک هستند.منظور همون اسکن صفحه ای هست.
    یه پایه مستقیم به منبع تغذیه وصله و یه پایه دیگه به آی سی pwm که معمولا ای سیش از خانواده mbi هست.
    مثلا میکن این بلوک تابلو mbi هست.
    کلا برای ساخت تابلو رنگی باید از این چیپ ها استفاده کنید.



    بعد از چند وقت برگشتم



  33. کاربران : 3 تشکر کرده اند از شما shayanmelody برای ارسال این پست سودمند:


  34. #17
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    ممنون آقا شایان

    میدونم . من یک آموزش کاملی از ساخت تلویزیون های شهری به زبان انگلیسی دانلود کردم . اون از آیسی (max 6974 ) استفاده کرده که تو ایران گیر نمیاد . مجبورم از اون فایل آموزشی و تغییراتی تو شماتیکش دادم یک تابلو معمولی بسازم .

  35. تشکرها از این نوشته :


  36. #18
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    البته یادم رفت بگم من یه کارایی هم کردم . شاید جواب بده . تو پروتئوس جواب داده . حالا led یه 100 تایی سفارش دادم . همین که به دستم رسید عملی می بندمش . اگه جواب گرفتم حتما شماتیک و مدارش را قرار میدم . من این کارو واسه جنبه تجاریش نمی خوام یاد بگیرم . در اصل کلا میخوام یک تابلو واسه سردر مغازه خودم بسازم همین ...!

  37. تشکرها از این نوشته :


  38. #19
    تازه وارد
    تاریخ عضویت
    Sep 2011
    نوشته ها
    1
    تشکر
    2
    تشکر شده 3 بار در 1 پست

    پیش فرض

    سلام
    از این دستورات استفاده کن 14 تا pwm داره
    Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
    Config Portb = Output
    Servo(1) = 10

  39. کاربران : 3 تشکر کرده اند از شما majid2010 برای ارسال این پست سودمند:


  40. #20
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2011
    نوشته ها
    81
    تشکر
    18
    تشکر شده 122 بار در 73 پست

    پیش فرض

    با سلام
    ممنون ولی از کدوم پورتا خارج میشه ؟

    و یک سوال دیگه ؟
    من rgb led کاتد مشترک داشتم و تونستم با pwm میکرو atmega 16 راهش بندازم . حالا rgb led آند مشترک گرفتم که با همون برنامه قبلی هیچ تغییر رنگی ندارم . برای تغییر پالس pwm از مثبت به منفی چه باید بکنم ؟

  41. تشکرها از این نوشته :


صفحه 1 از 2 12 آخرینآخرین

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •