اطلاعیه

Collapse
No announcement yet.

چند سوال فنی در بسکام

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

    چند سوال فنی در بسکام

    سلام :smile:
    چه طور می توانیم در بسکام با یک دستور یک مقدار دسیمال کمتر از 9 را به باینری(4 بیت) تبدیل کرد؟ این مقدار باینری کجا ذخیره میشه؟

    آیا می توان با دستور poke این مقدار دسیمال را که البته درون یک متغیر است به 8 بیت تبدیل کرد و درون یکی از رجیستر هایR0 تاR31 ریخت؟
    اگه جواب مثبت هست حالا چطور میتونیم به بیتهای رجیستر دسترسی پیدا کنیم و هر کدوم رو روی پایه به خصوصی بریزیم؟یعنی مثلا بیت دومR0 رو بریزیم رو pin c.0

    #2
    پاسخ : چند سوال فنی در بسکام

    از مهندسین گرامی کسی نیست این سوال من رو جواب بده؟ :sad: :angry:

    دیدگاه


      #3
      پاسخ : چند سوال فنی در بسکام

      ببین اصلا بای نرم افزار هیچ فرقی نمی کنه.
      این که تو بنویسی 25 یا بنویسی H19& یا بنویسی B11001& هیچ فرقی نمی کنه. همشون بیانگر عدد 25 هستند و اگه در خونه حافظه یا رجیستر قرار بگیره به صورت باینری انجام میشه.
      پس مثلا اگه می خوای DDRA رو با مقدار 25 دسیمال پر کنی می تونی بنویسی: DDRA=25 یا به شکل هگز یا باینری.
      برای خوندن بیت های رجیستر هم از دات استفاده کن. یعنی اگه بیت سوم رجیستر PINA رو لازم داری باید بنویسی PINA.2
      و...

      دیدگاه


        #4
        پاسخ : چند سوال فنی در بسکام

        حامد جان فرمایش شما صحیح ولی بذار بهت بگم که ما دقیقا میخوایم چه کار کنیم : :agree:

        ما بعد از یه سری پردازش؛دو تا متغیر داریم
        مقدار این دو تا متغیر بین 0 تا 9 هست
        حالا ما میخوایم ابن دو تا رو به صورت مجزا به باینری 4 بیتی تبدیل کنیم تا یکی شو رویPort C.0 تاC.3 بذاریم و اون 4 بیت دیگه رو روی C4 تا C7
        C.0 تاC.3 به 4543 وصل میشه تا اون عدد متغیر رو روی سون سگمنت نشون بده
        C4 تا C7 هم به یه 4543 دیگه وصل میشه تا عدد دیگه رو روی سون سگمنت دیگه نشون بده
        ما میخوایم اولا اون متغیرها رو به صورت باینری 4 بیتی یه جایی داشته باشیم و بعد همین باینری ها بره به پورت
        (4 بیت یکی از متغیر ها روی C.0 تاC.3 و4 بیت متغیر دیگه روی C4 تا C7 )
        بیت های روی پورت میشن آدرس دو تا 4543 ها (C.0 تاC.3 واسه یکی و C4 تا C7 واسه یکی دیگه)
        امیدوارم مشکل ما رو متوجه شده باشی
        اولا اون 2 تا باینری 4 بیتی رو کجا و چه طوری بوجود بیاریم
        بعد چه طور همین دو تا 4 بیت رو بفرستیم رو پورت C

        دیدگاه


          #5
          پاسخ : چند سوال فنی در بسکام

          خب این خیلی سادست.
          اول هر کدومو تو یه متغیر بریز. بعد یکیشو چهار بار یه چپ شیفت بده( معادلش میشه اونو در 16 ضرب کن). در نهایت با اون یکی OR کن.
          اینطوری:

          A = عدد اول
          B = عدد دوم
          A = A* 16
          PORTC = A OR B

          دیدگاه


            #6
            پاسخ : چند سوال فنی در بسکام

            حامد جان :angry:
            من میخوام همزمان 8 بیت رو به PortC بفرستم که 4 بیتش عدد اول و 4 بیتش عدد دوم هست (این دو تا 4 بیت باید همزمان ارسال بشن)

            دیدگاه


              #7
              پاسخ : چند سوال فنی در بسکام

              چیزی که من گفتم دقیقا همین کارو می کنه. فرض کن یه عدد 2 و یه عدد 7 داری. اگه عدد اول رو بریزی تو متغیر A و عدد دوم رو در متغیر B اونوقت داریم:

              A = 2 یا A= &B0010
              B = 7 یا B= &B0111
              چیزی که می خوای تو پورت C داشته باشی اینه : 0111 0010
              حالا اگه A رو در 16 ضرب کنی داریم : 32 = 16 * 2 یا 100000
              خب حالا اگه A رو با B تو یه ترکیب OR بذاریم چی داریم:
              A OR B = 0010 0111

              درسته؟

              دیدگاه


                #8
                پاسخ : چند سوال فنی در بسکام

                ببخشید حق با تو هست
                خیلی ممنون از راهنمایی هات
                :applause:

                دیدگاه

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