اطلاعیه

Collapse
No announcement yet.

جابه جایی بیت به بیت خروجی یک پورت

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    جابه جایی بیت به بیت خروجی یک پورت

    نوشته اصلی توسط mo2_star
    اینو نمیدونستم ممنون.

    ارایه از نوع بیت که نمیشه تعریف کرد پس چیکار کنم :cry:
    راه حل اصولیش استفاده از همون جدوله که گفتم.نمی دونم چرا شما اصرار دارید بیت جا به جا کنید.
    در هر صورت برای دسترسی به بیت های یک متغیر توی c میشه از ترکیب struct و union استفاده کرد.به این صورت:
    کد:
    union
    {
    unsigned char Byte_BCD;
    
    struct Bit_BCD{
    unsigned Bit0:1;
    unsigned Bit1:1;
    unsigned Bit2:1;
    unsigned Bit3:1;
    unsigned Bit4:1;
    unsigned Bit5:1;
    unsigned Bit6:1;
    unsigned Bit7:1;
    } sample_BCD;
    };
    من نمی دونم شما از چه کامپایلری استفاده می کنید و اینکه اون کامپایلر تا چه حد اجازه دسترسی بیتی به متغیر ها یا پورت ها رو میده.اما از اونجا که توی کامنت دومی از عبارت PORTD.0 استفاده کرده بودید حدس میزنم حداقل اجازه دسترسی بیتی به پورت ها رو دارید اگه اینجوری باشه می تونید متغیری که باید بیت هاش جابه جا بشه رو بریزید توی union بالا و بعد بیت هاش رو به هر شکلی که لازمه بریزید روی پورت اما مجبورید بیت به بیت به پورت مقدار بدید.فرضا اگه قراره توی متغیر a بیت 0با 2و 1 با 3 جاشون عوض بشه و بعد اونو بریزیم روی پورت D باید بعد از تعریف کد بالا اینجوری بنویسید:
    کد:
    Byte_BCD=a;
    PORTD.0=sample_BCD.Bit2;
    PORTD.1=sample_BCD.Bit3;
    PORTD.2=sample_BCD.Bit0;
    PORTD.3=sample_BCD.Bit1;
    PORTD.4=sample_BCD.Bit4;
    PORTD.5=sample_BCD.Bit5;
    PORTD.6=sample_BCD.Bit6;
    PORTD.7=sample_BCD.Bit7;

    #2
    پاسخ : جابه جایی بیت به بیت خروجی یک پورت

    من نمی دونم چی شد.داشتم جواب یک تاپیگ دیگه رو می دادم ارسال رو که زدم ازم خطا گرفت که موضوع رو وارد نکردم. من موضوع رو وارد کردم و دوباره ارسال زدم که دیدم یه تاپیک جدید ایجاد شده در هر صورت دوستان بخش نظارت زحمت بکشن تاپیک رو پاک کنند.ممنون

    دیدگاه

    لطفا صبر کنید...
    X