پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟
سلام عزیزم
از اینکه دیر به دیر پاسخ میدم ببخشید ...
بله درسته ...
PWM سخت افزاری هیچ گونه پردازشی نخواهد گرفت ...
ولی این تاپیک مربوط میشه به PWM نرم افزاری ... یعنی اینکه ما بخشی از پردازش CPU را میگیریم تا PWM درست کند ...
در میکروکنترلرهای AVR معمولی و قدیمی اشکال بزرگی در وقفه ها وجود دارد که ما باید این مشکل را یه جوری زیر سیبیلی ردش کنیم ...
مشکل این است که وقفه ها با هم تداخل دارند ... و این مشکل در سری جدید Xmega رفع گردیده ...
حالا شما نمیتوانید این مشکل رو رفعش کنید چون از دست ما خارج است ...
یکی از دوستان میگفت برای رفع این مشکل باید زمانی که به روتین وقفه میرویم وقفه های سراسری را خاموش و دوباره روشن کنیم !!!
من این روش رو امتحان نکردم ... ولی حتما جواب داده که این رو گفته ...
به هر صورت ...
این برنامه هایی که گذاشتم برای PWM کردن پایه های دیگر و البته با فرکانس و دقت پایین است که کاربردش خیلی خاصه ... و برای هر جایی پیشنهاد نمیشه ... چون بخشی از پردازش رو میگیره ...
پیشنهاد من این هست که حتما با PWM سخت افزاری کار کنید ...
موفق باشید
نوشته اصلی توسط tahmine67
از اینکه دیر به دیر پاسخ میدم ببخشید ...
بله درسته ...
PWM سخت افزاری هیچ گونه پردازشی نخواهد گرفت ...
ولی این تاپیک مربوط میشه به PWM نرم افزاری ... یعنی اینکه ما بخشی از پردازش CPU را میگیریم تا PWM درست کند ...
در میکروکنترلرهای AVR معمولی و قدیمی اشکال بزرگی در وقفه ها وجود دارد که ما باید این مشکل را یه جوری زیر سیبیلی ردش کنیم ...
مشکل این است که وقفه ها با هم تداخل دارند ... و این مشکل در سری جدید Xmega رفع گردیده ...
حالا شما نمیتوانید این مشکل رو رفعش کنید چون از دست ما خارج است ...
یکی از دوستان میگفت برای رفع این مشکل باید زمانی که به روتین وقفه میرویم وقفه های سراسری را خاموش و دوباره روشن کنیم !!!
من این روش رو امتحان نکردم ... ولی حتما جواب داده که این رو گفته ...
به هر صورت ...
این برنامه هایی که گذاشتم برای PWM کردن پایه های دیگر و البته با فرکانس و دقت پایین است که کاربردش خیلی خاصه ... و برای هر جایی پیشنهاد نمیشه ... چون بخشی از پردازش رو میگیره ...
پیشنهاد من این هست که حتما با PWM سخت افزاری کار کنید ...
موفق باشید

دیدگاه