سلام اساتید محترم بنده قصد نمونه برداری از صدایی با فرکانس بین 3 الی 4 کیلوهرتز و رزولیشن 10 bit و ارسال اون بوسیله usart را دارم.ولی در مورد ارسال بوسیله usart به مشکل بر خوردم اگر دوستان نظری یا تجربه ای در این مورد دارند لطفا دریغ نکنند. با تشکر از همگی
اطلاعیه
Collapse
No announcement yet.
ارسال 10 bit بوسیله usart در atmega 32
Collapse
X
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
با سلام
دوست عزیز اگه میشه بیشتر در مورد مشکلتون توضیح بدید .
در مورد نحوه ارسال 10 بیت خوب مگه غیر از اینه که میشه این 10بیت رو مثلا با یک انکودر یا مثلا با دو پورت میکرو دریافت کنید و اون رو بریزید داخل یک متغیر و سپس اون رو به پورت سریال ارسال کنید ؟البته اگر خروی 10بیتی تون به صورت موازی هست !
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
نوشته اصلی توسط mojtaba_ledبا سلام
دوست عزیز اگه میشه بیشتر در مورد مشکلتون توضیح بدید .
در مورد نحوه ارسال 10 بیت خوب مگه غیر از اینه که میشه این 10بیت رو مثلا با یک انکودر یا مثلا با دو پورت میکرو دریافت کنید و اون رو بریزید داخل یک متغیر و سپس اون رو به پورت سریال ارسال کنید ؟البته اگر خروی 10بیتی تون به صورت موازی هست !
مطابق رزولیشنم و فرکانس نمونه برداریم پهنای باند مورد نیازم برای انتقال دیتا از طریق پورت سریال بیش از 100kbps میشه.
مشکل من اینجاست بوسیله usart میشه 8 الی 9 بیت فرستاد نمیشه 10 بیت ارسال داشت برای 10 بیت ارسال من باید دیتام را در مبدا به دو قسمت 5 بیتی تقسیم کنم و ارسال را انجام بدم و در مقصد اون 2 بسته مربوط به هم را شناسایی کنم و سره هم کنم و بسته 10 بیتی را بسازم.برای این مورد چند نمونه برنامه نوشتم ولی جواب درستی نگرفتم اگر دوستان تجربه ای یا نظری یا اطلاعاتی در این زمینه دارند لطفا کمک کنند.با تشکر :cry:
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
این برنامه رو ببینید از یک موج مثلثی با فرکانس 4khz بوسیله adc نمونه برداری می کند و به روی پورت سریال ارسال می کند (فایل پرتئوس رو ببینید )
http://www.4shared.com/file/30MeoiH5/usart.html
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
سلام دوست عزیز
فرکانس 4 کیلوهرتز کیفیت صدایی برابر صدای پشت تلفن رو داره، در نتیجه اگر به صورت 8 بیت هم نمونه برداری کنید صدایی با کیفیت خوب خواهید داشت. ابتدا 10 بیتی نمونه بگیرید و سپس با شیفت آن به راست دو بیت کم ارزش را حذف کنید و از طریق USART انتقال دهید.تلاش رمز ظفر
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
نوشته اصلی توسط mojtaba_ledاین برنامه رو ببینید از یک موج مثلثی با فرکانس 4khz بوسیله adc نمونه برداری می کند و به روی پورت سریال ارسال می کند (فایل پرتئوس رو ببینید )
http://www.4shared.com/file/30MeoiH5/usart.html
مشکل من ارسال 10 بیت نمونه است اونم در حداکثر پهنای باند usart
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
نوشته اصلی توسط برنامه نویسسلام دوست عزیز
فرکانس 4 کیلوهرتز کیفیت صدایی برابر صدای پشت تلفن رو داره، در نتیجه اگر به صورت 8 بیت هم نمونه برداری کنید صدایی با کیفیت خوب خواهید داشت. ابتدا 10 بیتی نمونه بگیرید و سپس با شیفت آن به راست دو بیت کم ارزش را حذف کنید و از طریق USART انتقال دهید.
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
من یه کار تو این مایه ها کردم ولی بایت بود نه بیت :redface:
حالا پیشنهاد من:
1-بیا سریال تو ببر تو 5 بیت
2-اون مقصد یا همون ریسیو بریزش تو به int
3- حالا 5 تا شیفنش بده بره چپ
4-5 بیت بعدی رو بفرست
5-بریز دوباره تو int
الان 10 بیت اول int شما همون 10 بیت اول .امیدوارم منظور رو رسونده باشمتو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
نوشته اصلی توسط sey22من یه کار تو این مایه ها کردم ولی بایت بود نه بیت :redface:
حالا پیشنهاد من:
1-بیا سریال تو ببر تو 5 بیت
2-اون مقصد یا همون ریسیو بریزش تو به int
3- حالا 5 تا شیفنش بده بره چپ
4-5 بیت بعدی رو بفرست
5-بریز دوباره تو int
الان 10 بیت اول int شما همون 10 بیت اول .امیدوارم منظور رو رسونده باشم
ولی یک مشکل اینجاست که هر 10 بیت یک نمونه را شامل میشه و باید توالی بسته های دریافتی مشخص باشه تا دوبسته غیر هم خوان با هم یک 10 بیت نسازند حالا اگر ممکنه شما یک تست کنید ببینید میتونید دیتا را با این مشخصات در مقصد بازسازی کنید .اگر شد من مشکل دوم این کار را میگم.
دیدگاه
-
پاسخ : ارسال 10 bit بوسیله usart در atmega 32
نوشته اصلی توسط O.M.I.Dمجتبی جان نتونستم لینکا باز کنم ولی فکر کنم این لینکا دیده باشم با 8 بیت نمونه برداری انجام میشه .
مشکل من ارسال 10 بیت نمونه است اونم در حداکثر پهنای باند usart
توی این برنامه که براتون گزاشتم مقادیر بزرگتر از 511 هم نمایش داده میشه ؟
ممنون میشم بیشتر توضیح بدید.
دیدگاه
دیدگاه