PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : porta and port b در AT91SAM7X256



hosein47
30-01-2010, 12:59
سلام
با توجه به آنکه میکروکنترلر AT91SAM7X256 یک میکرو 32 بیتی است ونیز تعداد پین های پورت a , b هر کدام 31 پین میباشد. اگر بخواهیم یک دیتای 32 بیتی را به یکی از پورتهای A ویا B بفرستیم چگونه این کار امکان پذیر است
با تشکر

1nafar
01-02-2010, 01:12
من توی انجمن اتمل مطرح کردم :
You can see links before reply

Division
15-05-2010, 02:11
با سلام

تو سيستم هاي كه ما احتياج داريم كه اطلاعات رو به صورت 32 بيتي و اونم به شكل پارالل رد و بدل كنيم معمولا ً با ارزش ترين بيت رو به عنوان Select وسيله جانبي متصل شده به ميكروكنترلر در نظر گرفته ميشه .

به عبارت ديگه ديتا رو به صورت 31 بتي در نظر مي گيرن و بيت 32 رو براي انتخاب منظور مي كنن .
ولي اگه در پروژه اي خاص پهناي باند اطلاعت ورودي يا خروجي 32 بيت تمام مد نظر قرار بگيرد، ميتوان از پايه اي ديگر به عنوان بيت با ارزش استفاده نمود .

براي دريافت اطلاعت 32 بيتي از طريق پورتي كه فقط 31 بيتش تو خروجي قابل دسترسي است بايد از يه كلك نرم افزاري استفاده كرد .:0013:

به اين صورت كه شما عدد 31 بيتي رو مثلاً از طريق پورت a دريافت كنيد و داخل يه متغيري ذخيرش كنين، بعد بيت با ارزش رو از طريق يه پايه جداگانه دريافت كرده و اونم داخل يه متغير بيتي ذخيره كنيد .
عدد دوم كه از ورودي دريافت كردين رو با عدد 0b1111111111111111111111111111111 جمع كنيد و حاصل رو يه جايي ذخيره كنيد .
در ادامه همين عدد جديد بدست آمده بعد از عمل جمع رو به شرط اينكه بيت باارزش وردي صفر باشه با عدد 31 بتي and كنيد و به شرط اينكه بيت باارزش وردي يك باشه با عدد 31 بتي or كنيد .

0b1111111111111111111111111111111 = 0x7fffffff