اطلاعیه

Collapse
No announcement yet.

ابهام در برنامه نویسی KEIL در میکرو LPC1768

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

    ابهام در برنامه نویسی KEIL در میکرو LPC1768

    من در محیط برنامه نویسی Keil میکروکنترلر ARM LPC1768 به یه همچین دستوری برخوردم
    کد:
    LcdControlBusPort &= ~(1«LCD_RS);      // Send LOW pulse on RS pin for selecting Command register
    البته
    کد:
    #define LcdControlBusPort   LPC_GPIO2->FIOPIN
    #define LCD_RS     0
    این از قبل تعریف شده

    حالا این &=
    و ~
    اینجا چی کاره هستن؟
    ایا همون and بیتی و برعکس کردن بیت ها هستند؟
    خوب اگه منظور از این ها همین عملگر ها هستند تفسیر این خط از برنامه چطوریه؟
    مگه خیلی راحت تر از این ها نمیشد مقدار رو در پورت مورد نظر ریخت؟؟
    خواهشا دوستانی که در این زمینه کار میکنند و به نحوی دستشون تو کاره پاسخ بدن
    پیروزی یعنی : توانایی رفتن از یک شکست ، به شکستی دیگر بدون از دست دادن اشتیاق . . .
    ------------------------------------------------------------ - - -
    صبرت که تمام شد نرو!
    "معرفت"
    تازه از آن لحظه آغاز می شود...

    #2
    پاسخ : ابهام در برنامه نویسی KEIL در میکرو LPC1768

    نوشته اصلی توسط elec200 نمایش پست ها
    من در محیط برنامه نویسی Keil میکروکنترلر ARM LPC1768 به یه همچین دستوری برخوردم
    کد:
    LcdControlBusPort &= ~(1�LCD_RS);      // Send LOW pulse on RS pin for selecting Command register
    البته
    کد:
    #define LcdControlBusPort   LPC_GPIO2->FIOPIN
    #define LCD_RS     0
    این از قبل تعریف شده

    حالا این &=
    و ~
    اینجا چی کاره هستن؟
    ایا همون and بیتی و برعکس کردن بیت ها هستند؟
    خوب اگه منظور از این ها همین عملگر ها هستند تفسیر این خط از برنامه چطوریه؟
    مگه خیلی راحت تر از این ها نمیشد مقدار رو در پورت مورد نظر ریخت؟؟
    خواهشا دوستانی که در این زمینه کار میکنند و به نحوی دستشون تو کاره پاسخ بدن
    با سلام
    بیت صفرم رجیستر LPC_GPIO2->FIOPIN را صفر می کند موفق باشید

    دیدگاه


      #3
      پاسخ : ابهام در برنامه نویسی KEIL در میکرو LPC1768

      خوب نمی تونست درست و حسابی بنویسه LPC_GPIO2->FIOPIN =0x0000
      خوب پس چرا از این عمگر &= و ~ استفاده کرده؟
      پیروزی یعنی : توانایی رفتن از یک شکست ، به شکستی دیگر بدون از دست دادن اشتیاق . . .
      ------------------------------------------------------------ - - -
      صبرت که تمام شد نرو!
      "معرفت"
      تازه از آن لحظه آغاز می شود...

      دیدگاه


        #4
        پاسخ : ابهام در برنامه نویسی KEIL در میکرو LPC1768

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

        دیدگاه


          #5
          اقا مگه این دستور بیت 0 رو یک بار به سمت چپ شیفت نمیده؟
          بعد متناقض بیت ها رو قرار میده
          و بعدش هم با عملگر and نمی دونم چی کار میکنه!!!!
          خوب باز ترتیب بیت ها به هم میخوره دیگه اینطور نیست؟؟؟
          اگه میشه بیشتر توضیح بدید ممنون میشم

          اقا اگه کسی بتونه این دو خط کد رو تفسیر کنه سوال اساسی ای رو برام حل کرده
          دمتون گرم
          کد:
            
                LPC_GPIO2->FIOPIN &= ~ ( ((1<<LCD_D4)|(1<<LCD_D5)|(1<<LCD_D6)|(1<<LCD_D7)) )
                  LPC_GPIO2->FIOPIN    |= (((nibble >>0x00) & 0x01) << LCD_D4);
          و البته
          کد:
          #define LCD_D4     4
          #define LCD_D5     5
          #define LCD_D6     6
          #define LCD_D7     7
          و همچنین این دو خط داخل تابع هست:
          کد:
          void sendNibble(char nibble)
          {
          }
          که nibble رو از تابع میگیره

          ما همچنان منتظر پاسخ دوستان هستیم
          ------------------------------------
          جدیدترین ویرایش توسط اشکان غفارزاده; ۲۳:۱۰ ۱۳۹۵/۰۸/۲۳.
          پیروزی یعنی : توانایی رفتن از یک شکست ، به شکستی دیگر بدون از دست دادن اشتیاق . . .
          ------------------------------------------------------------ - - -
          صبرت که تمام شد نرو!
          &quot;معرفت&quot;
          تازه از آن لحظه آغاز می شود...

          دیدگاه

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