اطلاعیه

Collapse
No announcement yet.

برعکس نمودن یک بایت در AVR BASCOM

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

    برعکس نمودن یک بایت در AVR BASCOM

    سلام
    من چطور می تونم یه عدد باینری هشت بیتی رو برعکس کنم در BASCOM- مثل
    11100000 به 00000111
    10100001 به 10000101

    #2
    پاسخ : برعکس نمودن یک بایت در AVR BASCOM

    تو رو خدا کمک کنید

    دیدگاه


      #3
      پاسخ : برعکس نمودن یک بایت در AVR BASCOM

      سلام.

      در بسکام از دستور rotate a,x استفاده کن که a عدد مورد نظر شما و x تعداد چرخش میباشد.

      دیدگاه


        #4
        پاسخ : برعکس نمودن یک بایت در AVR BASCOM

        دوست عزیز با این چزی که شما گفتی که نمیشه قشنگ به سوال من توجه کن من منظورم اینه که بیت هشتم بیاد تو بیت یکم بشینه و بیت هفتم بیاد تو بیت دوم بشینه و به همن ترتیب . نمی دونم تونستم منظورم رو برسونم یا نه لطفا کمک کنید

        دیدگاه


          #5
          پاسخ : برعکس نمودن یک بایت در AVR BASCOM

          عزیز وقتی شما میگید یک بایت برعکس بشه به معنی toggle شدن اونه ولی شما در سوالتون نوشتید عدد 11100000 به 00000111 تبدیل بشه که کد زیر این کار رو انجام میده.
          $regfile = "m16def.dat"
          $crystal = 8000000
          Dim A As Byte
          Config Portb = Output

          A = &B11100000
          Rotate A , Right , 5
          Portb = A

          امیدوارم کمکی کرده باشم.

          دیدگاه


            #6
            پاسخ : برعکس نمودن یک بایت در AVR BASCOM

            جهت برعکس نمودن یک بایت در زبان C، که میتونه نرم افزار codevision باشه یا توی کیل میکروکنترولر ARM در ادامه دستور آن آمده است.
            فرض کنید که یک متغیر با نام مثلا ali دارید که دارای مقدار هگز 0xC4 یا همان مقدار باینری 11000100 باشد. معکوس شده این بایت می شود 00100011 که برابر مقدار هگز 0x23 می باشد. یعنی بطور ساده تربگویم بیت هشتم (آخر) به بیت اول منتقل شده، بیت هفتم به بیت دوم، بیت ششم به بیت سوم، بیت پنجم به بیت چهارم، بیت چهارم به بیت پنجم، بیت سوم به بیت ششم، بیت دوم به بیت هفتم و بیت اول به بیت هشتم منتقل شده است. با زیر می توان این کار را انجام داد (یعنی بیت های متغیر ali را می توان معکوس کرد)

            ali= ((ali >>7) & 0x01) + ((ali >>5) & 0x02) + ((ali >>3) & 0x04) + ((ali >>1) & 0x08) + ((ali <<1) & 0x10) +((ali <<3) & 0x20) + ((ali <<5) & 0x40) + ((ali <<7) & 0x80)
            جدیدترین ویرایش توسط ali2552; ۲۲:۲۳ ۱۴۰۰/۱۱/۱۹.

            دیدگاه


              #7
              پاسخ : برعکس نمودن یک بایت در AVR BASCOM

              شما می تونید یه متغیر از نوع آرایه 8 بیتی ایجاد کنید و توی یک حلقه for که 8 بار تکرار میشه از اندیس آخر به اول بخونید و بریزیدش توی یه متغیر آرایه دیگه
              توی کدویژن میشه ولی بسکام نمی دونم
              مثال
              int counter[4] = { 1 , 10 , 100 , 1000};

              counter[0] = 1;
              counter[1] = 10;
              counter[2] = 100;
              counter[3] = 1000;
              جدیدترین ویرایش توسط javadebrahimi; ۱۲:۰۹ ۱۴۰۰/۱۱/۲۰.

              دیدگاه

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