ايران ويج

نسخه‌ی کامل: مشکل در پخش صدا از mmc از طریق fat
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام .
و سلام خدمت هادی آقا.
لطفا منو راهنمایی کنید که واقعا محتاجم .

من با استفاده از کتابخانه avr-dos و mmc بسکام با mmc ارتباط برقرار کردم و فایل صدا رو که wav است به صورت باینری باز کرم و با استفاده از دستور get اطلاعات رو میخونم و در متغیر نوع بایت میریزم و بعد متغیر رو اعمال میکنم به Pwm ولی صدای خروجی به صورت برش برش (گلو تو صاف کن Amaze )پخش میشه : میکرو mega64 - timer0 8 bit- F 16mhz
و اینرو بگم که من فایل رو از طریق کامپیوتر و با فرمت fat داخل mmc کپی میکنم و با انواع نرخ بیتها و فرکانسها کار کردم .

البته این رو بگم که من تمام موارد بالارو فقط بدون دخالت fat کار کردم (mega 64 - mmc init - spi hard - F 16mhz ) و جواب گرفتم و فقط وقتی fat رو اضافه میکنم مشکل به وجود میاد انگار کدها cpu رو اشغال کردن ولی یه چیزی هست که من رو در مورد اینکه clock کم بیاره به شک انداخته و اون این که دستور waitus برای نرخ بیت نسبتا کمتر باید استفاده بشه و وجود وعدم وجود این دستور تاخیر هیچ فرقی در اصل صدا ایجاد نمیشه یعنی همچنان برش خورده پخش میشه و تاثیری که داره صدارو تند و یا کند (کشاد) میکنه .

لطفا راهنمایی بفرمائید .
ببین به این راحتی که می گی نیست اگه همه چیز درست فقط خروجی برش داره و فقط مواقعی که fat رو اضافه می کنی پیش می یاد به خاطر همون سرعت
احتمالا با بیسیک که نمی نویسی؟ و یا از spi شبیه سازی شده استفاده نمی کنی؟
بهتره از اینتراپت برای پخش صدا استفده کنی بعنی بخونی بریزی توی یک بافر و با باینتراپت منظم بخونی و پخش کنی
استفاده از توابع آماده هم سرعت رو معمولا می یاره پایین چون کلی کد اضافه برای کار هایی که شما نیاز نداری تشوش هست و کلی متغیر رو چک می کنن که ممکنه شما هم چک کرده باشی
سرعت میکرو رو یکم ببر بالا ببین خوب می شه
من با بسکام نوشتم و از کریستال 16mhz هم استفاده کردم و درمورد اینتراپت , کار نکردم چند بار کدشو نوشتم ولی کار نکرد .اگر امکان داره راهنمایی فرمائید.
ورژن بسکام 1.11.9.0.001 با ورژنهای دیگه هم کمپایر کردم .
از mega64 استفاده میکنم اینم کد.

[align=left]Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1
Enable Interrupts
On Compare1a Dac_newsample , Nosave
کدها
Dac_newsample:
کدها
اینتراپت چیز خاصی نیست فقط یه تابع که توی زمان های منظم اجرا می شه شاید توی تنظیماتش مشکل داشتی
و بسکام رو هم بی خیال شو برای یه کار به این سنگینی نرمافزار به درد بخوری نیست آخرش هم چیز درست حسابی در نمی یاد حداقل با codevison باید کار کنی
سلام دوستان
من هم دارم یه پروژه تقریبا تو این مایه ها انجام میدم و میخوام یه فایل Wave رو بخونه .
اما من نمیتونم MMC که دارم رو توسط میکرو شناساییش کنم
اینم نحوه اتصال MMC به Atmega32
http://www.eefocus.com/data/myspace/13/6...59aeef.jpg
اما یه جا دیگه دیدم باید پین CS مموری به XCK/T0 یا همون پورت B.0 باید وصل شه در صورتی که در این شماتیک پایه CS رو به SS یعنی پورت B.4 میکرو Mega32 وصل کرده
سوال اول : کدوم درسته ؟ XCK/T0 یا SS ؟
سوال دوم : بقیه مدار درسته ؟؟
اگه لطف کنن دوستان یه شماتیکی که ازش جواب گرفتن بگذارن خیلی ممنون میشم ، با تشکر از همه دوستان
این هم شکلی که به میکرو وصل کردم
خطوط زرد که خورده به 3.3 ولت مقاومت 50 کیلو اهمی هستند
آقا خدایی مردم انقدر Refresh کردم
یه کمکی بکنید خیلی لنگم