نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

نحوه ۱۶ بیتی کردن پورت های ۸ بیتی avr

به نام خدا : تو این مطلب از آموزش Avr ؛ میخوام نحوه ۱۶ بیتی کردن پورت های ۸ بیتی avr رو توضیح بدم؛ راسش یکی از دوستان این سوال رو پرسید که چطور میشه این کار رو کرد و چون قبلا دیده بودم که بعضی دوستان هم همین سوال رو داشتن؛ لذا گفتم به صورت یه مطلب بزارم تا همه استفاده کنن؛ نحوه ۱۶ بیتی(یا ۲۴ بیتی یا ۳۲ بیتی یا….) خیلی سادس، فقط کافیه مبانی کدنویسی رو بلد باشید؛ یه پروژه avr در این زمینه میزارم و توضیحش میدم؛ ما برای این کار از روش شیفت دادن اطلاعات استفاده میکنیم؛ لطفا در ادامه همراه ما باشید blum
در ضمن شرمنده اگه عنوان مطلب خوب نیست، بهتر از این پیدا نکردیم pardon
نحوه ۱۶ بیتی کردن پورت های ۸ بیتی avr

پروژه avr

شماتیک پروژه

پروژه avr

کدهای پروژه

خوب حالا داستان شیفت دادان چیه :
همون طور که میدونید مثلا یه دیتا داریم ۱۶ بیتی(یعنی ۱۶ تا ۰ و ۱ داریم) که به صورت زیر هستش:

که ۰X نحوه مقدار دهی به صورت هگزا دسیمال هستش و ۰B به صورت باینری و اون عددع(۶۵۵۳۶) به صورت DEC یا همون ۱۰ دهی هستش.(همه ی این روش های مقدار دهی یه جوابی رو دارن) >>> ما تو این مطلب برا تفهیم بیشتر از روش باینری استفاده میکنیم.
خوب این متغییر ۱۶ تا بیت داره لذا ما به ۲ تا پورت میکرو نیاز داریم(که من در پروژه PORTC , PORTD رو انتخاب کردم) و باید کاری کنیم که ۸ تا بیتش بره به یکی و ۸ تای دیگه به اون یکی.

۸ بیت اول= PORTC
۸ بیت دوم=PORTD

حالا اگه بیایم این دیتای ۱۶ بیتیمون رو بدیم به PORTC (که ۸ بیت اولمون رو باس بهش بدیم) و تغییری در دیتا اعمل نکنیم مشکلی پیش نمیاد و PORTC فقط ۸ بیت اول این متغییر رو میتونه بخونه و برا ۸ بیت بعدی توانایی خوندنش رو نداره که دلیلش واضح هستش.

حالا میخوایم ۸ بیت دوم  رو بدیم به PORTD برای این کار اگه مستقیما متغییر رو بدیم بهش؛ فقط ۸ بیت اول وتغییر رو دریافت میکنه در حالی که ما ۸ بیت دوم متغییر رو میخوایم بریزیم تو PORTD. >>>> کاری که میکنیم اینه که این متغییر رو ۸ بیت به سمت راست شیفت میدیم.(یعنی این ۱۶ بیت رو ۸ بیت به سمت راست جا بجا میکنیم؛ به صورت زیر)

در کد بالا اگه جهت فلش رو عوض کنید شیفت به سمت راست داده میشه(که کاری با این موضوع نداریم تو این پروژه….همین طوری گفتم laugh )

دانلود پروژه ۱۶ بیتی کردن پورت های AVR

در آخر امیدوارم این مطلب براتون مفید بوده باشه و اگه سوالی بود حتما حتما بپرسید و هزینه مطلب فراموش نشه. blush
هزینه ی استفاده از مطلب : یه فاتحه برا کسایی که از دنیا رفتن ؛ ۳ تا صلوات برا ظهور آقا و شادی روح شهدا و امام شهدا و سلامتی رهبر
اگه کسی حال داشت حالت ۲۴ و ۳۲ بیتی رو هم بنویسه و بفرسته برامون(من حالش رو ندارم laugh ….فقط اینو بگم که مثلا برا ۳۲ بیتی نیاز داریم ۴ بار شیفت بدیم و هر دفه بدیم به یکی از پورت ها)
فعلا یا علی.

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو امیدوارم مطالب ناچیز این سایت مفید باشه براتون؛ به امید روزی که دانسته هامونو به اشتراک بزاریم، حالا پولی یا رایگانش زیاد مهم نی؛ بعضی ها فک میکنن چیزی که بلدن، اگه با دیگران به اشتراک بزارن ... !
ارسال دیدگاه
9

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    ناشناس

    الان این اموزش بود مثلا ؟!!!

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – والا معیاری برای این کار نیستش – مثلا یه پروژه روشن کردن یک led و توضیح دادنش برای یک تازه کار میتونه یه آموزش باشه ولی برا کسی که چند ساله کارش اینه نه.

  2. Avatar

    مهمان

    zzz

    عاااااااالی
    تشکر فراوان

  3. Avatar

    مهمان

    مهدی

    سلام با تشکر از آموزش های خوب شما
    به نظر من data=data >>8 شیفت به راسته نه چپ

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بله حرف شما صحیح هستش – الان توضیحات کدها تصحیح میشه.
      ممنون از شما.

  4. Avatar

    مهمان

    alimoghaddam

    ..
    .
    .
    .
    .
    laugh heart
    باید باشی.

  5. Avatar

    مهمان

    alimoghaddam

    باریکلا
    بابا تو دیگه همونی هستی که…

  6. Avatar

    مهمان

    behzad

    آفرین ……. همینجوری چون پسر خوبی هستی

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      crazy