پاسخ : تولید موج pwm روی همه ی پایه های میکرو
من مهندس عمرانم و تجربه و دانش زیادی در این رابطه ندارم ولی به شخصه تجربه کردم که روی هر پایه MCU میشه به صورت نرم افزاری PWM تولید کرد. اما Resolution حاصله یک شرط اصلی داره اونم قدرت پردازش MCU هستش که خودش به چند مورد دیگه بستگی داره
1- تعداد پایه هایی که باید PWM تولید کنند
2- تنوع فرکانس ها. مثلا فرض کنید 20 پایه باید PWM داشته باشند که از این مقدار 10 عدد با فرکانس 300hz و 5 عدد با فرکانس 500hz و 5 عدد با فرکانس 1Khz
3- خلاقیت برنامه نویس برای پیاده کردن پربازده ترین الگوریتم ممکنه
4- کارهای دیگری که باید MCU به غیر از تولید PWM انجام بده.
5-زبان برنامه نویسی که استفاده میشه. همونطور که میدونید سرعت اجرای دستورات در زبان های مختلف باهم فرق داره مثلا دستور PulseOut در BascomAVR که دوست خوبمون بهش اشاره کرد، خودش یه جور تابع داخلی هستش که به صورت پیش فرض در نرم افزار تعریف و از چندین دستور دیگه تشکیل شده.
اگر مورد دیگه ای هست من حضور ذهن ندارم. در آخر اینو بگم که من سعی کردم خیلی ساده موضوع رو عنوان کنم ولی عملا این کار زیاد راحت نیست به خصوص در Resolution بالا و برنامه هایی که interrupt های زیادی دارن یا در اونها از توابع تاخیری مثل Wait یا Delay زیاد استفاده شده
من مهندس عمرانم و تجربه و دانش زیادی در این رابطه ندارم ولی به شخصه تجربه کردم که روی هر پایه MCU میشه به صورت نرم افزاری PWM تولید کرد. اما Resolution حاصله یک شرط اصلی داره اونم قدرت پردازش MCU هستش که خودش به چند مورد دیگه بستگی داره
1- تعداد پایه هایی که باید PWM تولید کنند
2- تنوع فرکانس ها. مثلا فرض کنید 20 پایه باید PWM داشته باشند که از این مقدار 10 عدد با فرکانس 300hz و 5 عدد با فرکانس 500hz و 5 عدد با فرکانس 1Khz
3- خلاقیت برنامه نویس برای پیاده کردن پربازده ترین الگوریتم ممکنه
4- کارهای دیگری که باید MCU به غیر از تولید PWM انجام بده.
5-زبان برنامه نویسی که استفاده میشه. همونطور که میدونید سرعت اجرای دستورات در زبان های مختلف باهم فرق داره مثلا دستور PulseOut در BascomAVR که دوست خوبمون بهش اشاره کرد، خودش یه جور تابع داخلی هستش که به صورت پیش فرض در نرم افزار تعریف و از چندین دستور دیگه تشکیل شده.
اگر مورد دیگه ای هست من حضور ذهن ندارم. در آخر اینو بگم که من سعی کردم خیلی ساده موضوع رو عنوان کنم ولی عملا این کار زیاد راحت نیست به خصوص در Resolution بالا و برنامه هایی که interrupt های زیادی دارن یا در اونها از توابع تاخیری مثل Wait یا Delay زیاد استفاده شده







دیدگاه