سلام دوستان کسی میتونه برنامه تولیدpwm نرم افزاری رو بهم بده یا راهنمایی کنه
اطلاعیه
Collapse
No announcement yet.
تولید PWM نرم افزاری با CODE VISION
Collapse
X
-
پاسخ : تولید PWM نرم افزاری با CODE VISION
سلام. اگر مفهوم PWM رو متوجه شده باشید تولید PWM نرم افزاری کار ساده ایست. شما یه وقفه معمولی سرریز تایمر با دوره تناوب چند میکروثانیه راه میندازی. بعد یه شمارنده راه می ندازی از 0 تا 255 که بشماره 255 بار این وقفه اتفاق افتاده. بعدش در طول این 255 بار با توجه به عرض پالس PWM پایه ای که میخواین روش PWM ایجاد کنید رو به صورت نرم افزاری صفر و یک می کنین.
مثلا کد نمونه زیر رو نگاه کنید:
unsigned char counter=0xff,pulse_width=200;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
if(++counter==0){
PORTB.0=1;
}
if( pulse_width == counter) PORTB.0=0;
}
عرض پالس به طور دلخواه می تونه یه عدد بین 0 تا 255 باشه.
-
پاسخ : تولید PWM نرم افزاری با CODE VISION
من روش بهتری رو سراغ دارم. البته تست کردم و عملکرد بسیار بهتری به نسبت سایر روش ها داشته.
بیایم از دو وقفه برای تایمر کمک بگیریم به این صورت که یک بار وقفه هنگام برابری با OCR باشه و یکبار وقفه موقع سرریز کردن. که در روال وقفه مقایسه پین صفر و در روال وقفه سرریز یک بشه. مثالش هم به صورت زیر هستش.
نکته ای که هست این که این روش برای ایجاد fast pwm هست.
کد:interrupt [TIM0_OVF] void timer0_ovf_isr(void) { PORTD |= (1<<PORTD7); } interrupt [TIM0_COMP] void timer0_comp_isr(void) { PORTD &= ~(1<<PORTD7); }
چرا ناراحتی پاتریک!
+ امروز ی بچه دیدم سرچهارراه گل میفروخت
- از دیدنش ناراحت شدی؟
+ نه
پس چی ناراحتت کرده
+ اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
------------------------------------------------------------------------------------------------------
تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
------------------------------------------------------------------------------------------------------
محصولات
دیدگاه
-
پاسخ : تولید PWM نرم افزاری با CODE VISION
این روش به نسبت روش های قبلی دقت بالاتری داره ولی ایرادش اینکه نمی تونید PWM های متفاوت رو روی پین های مجزا داشته باشیدچرا ناراحتی پاتریک!
+ امروز ی بچه دیدم سرچهارراه گل میفروخت
- از دیدنش ناراحت شدی؟
+ نه
پس چی ناراحتت کرده
+ اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
------------------------------------------------------------------------------------------------------
تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
------------------------------------------------------------------------------------------------------
محصولات
دیدگاه
-
پاسخ : تولید PWM نرم افزاری با CODE VISION
نوشته اصلی توسط سوران آراسته نمایش پست هااین روش به نسبت روش های قبلی دقت بالاتری داره ولی ایرادش اینکه نمی تونید PWM های متفاوت رو روی پین های مجزا داشته باشیداوژن: به معنای افکننده و شکست دهنده است
دانایی، توانایی است-Knowledge is POWER
برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد
دیدگاه
-
پاسخ : تولید PWM نرم افزاری با CODE VISION
نوشته اصلی توسط طراح نمایش پست هادر صورتی که به دلیل بزرگ بودن prescaler فرصت کافی برای اجرای دستورالعمل ها در وقفه وجود داشته باشد، با روش پیشنهادی شما می توان روی چند پین هم pwm با عرض پالس های مختلف داشت. برای باز شدن ذهن بهتر است خودتان قدری در این مورد فکر کنید و راه آن را پیدا کنید. در غیر اینصورت روشی را به شما پیشنهاد خواهم کرد.
متاسفانه سخت افزار لازم رو الان ندارم تا عملا تست کنم ولی فکر می کنم با استفاده از چند فلگ برای فعال سازی پین های مورد نظر و اپدیت مقدار OCR در زیرروال وقفه مقایسه میشه این کارو انجام داد. اما نمی دونم استفاده از شرط ها چقدر می تونه روی دقت موج خروجی تاثیر داشته باشه.در چند روز اینده به صورت عملی تست می کنم و نتیجه رو قرار میدم.چرا ناراحتی پاتریک!
+ امروز ی بچه دیدم سرچهارراه گل میفروخت
- از دیدنش ناراحت شدی؟
+ نه
پس چی ناراحتت کرده
+ اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
------------------------------------------------------------------------------------------------------
تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
------------------------------------------------------------------------------------------------------
محصولات
دیدگاه
دیدگاه