سلام
من می خوام یه ملودی 8 ثانیه ای رو توی mega128 ضبط کنم. کارایی که من کردم، اینا بوده:
برای ضبط: از فایل صوتی که داشتم ( از خروجی کارت صدا ) با فرکانس 15KHz سمپل گرفتم و از طریق پورت com، در قالب یه فایل تکست ذخیره و بعد به همراه برنامه و به شکل یک آرایه داخل میکرو پروگرام کردم.
برای پخش: تایمر 1 رو روی مد fast pwm با top=0x1FF تنظیم کردم و خروجی OC1A رو گذاشتم روی non inverted. در زمانی که موج pwm در حال تولید شدن هست، با وقفه هایی که تایمر 0 هر 67 میکرو ثانیه تولید می کنه ( برابر با زمان بین هر سمپل )، هر بار مقادیر هگز موجود در آرایه رو داخل رجیستر OCR1A ریختم تا متناسب با مقادیر نمونه گیری شده، pwm تولید کنم. و در آخر هم این pwm رو به یه فیلتر پایین گذر RC دادم.
حالا مشکلی که من دارم، اینه که با وجود فرکانس نمونه گیری 15KHz باز هم کیفیت صدای پایینی دارم و صدا خیلی زیر هست. کسی در این باره تجربه ای داره؟ به نظرتون باید چیکار کنم؟
من می خوام یه ملودی 8 ثانیه ای رو توی mega128 ضبط کنم. کارایی که من کردم، اینا بوده:
برای ضبط: از فایل صوتی که داشتم ( از خروجی کارت صدا ) با فرکانس 15KHz سمپل گرفتم و از طریق پورت com، در قالب یه فایل تکست ذخیره و بعد به همراه برنامه و به شکل یک آرایه داخل میکرو پروگرام کردم.
برای پخش: تایمر 1 رو روی مد fast pwm با top=0x1FF تنظیم کردم و خروجی OC1A رو گذاشتم روی non inverted. در زمانی که موج pwm در حال تولید شدن هست، با وقفه هایی که تایمر 0 هر 67 میکرو ثانیه تولید می کنه ( برابر با زمان بین هر سمپل )، هر بار مقادیر هگز موجود در آرایه رو داخل رجیستر OCR1A ریختم تا متناسب با مقادیر نمونه گیری شده، pwm تولید کنم. و در آخر هم این pwm رو به یه فیلتر پایین گذر RC دادم.
حالا مشکلی که من دارم، اینه که با وجود فرکانس نمونه گیری 15KHz باز هم کیفیت صدای پایینی دارم و صدا خیلی زیر هست. کسی در این باره تجربه ای داره؟ به نظرتون باید چیکار کنم؟
دیدگاه