اطلاعیه

Collapse
No announcement yet.

نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

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

    نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

    سلام
    من میخوام مقدار یه رجیستر مثلا رجیستر R16 در AVR رو بریزم توی یک متغیر که با دستور Dim در بیسکام تعریفش کردم
    اما وقتی مینوسیم

    Dim Value As Byte
    Value = R16

    کمپایلر خطا میده چرا؟
    چطور اینکارو بکنم؟ میخوام از مقدار Value در برنامه بیسیک استفاده کنم.

    #2
    پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

    سلام
    شاید با اسمبلی بشه
    &asm
    mov value,r16
    &end asm
    نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

    دیدگاه


      #3
      پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

      نوشته اصلی توسط ساناز.پارســا
      سلام
      شاید با اسمبلی بشه
      &asm
      mov value,r16
      &end asm
      ممنون اما نمیشه امتحان کردم خطا داد.

      دیدگاه


        #4
        پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

        پس اینو امتحان کنید:

        Dim value As Byte At $60

        $asm
        Ldi R16,$60
        $end Asm

        نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

        دیدگاه


          #5
          پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

          تو help بسکام نوشته

          Dim C As Byte

          Loadadr C , X 'load address of variable C into register X

          $asm

          St X,R16 ; store R16 into variable c

          $end Asm



          اگر که آدرس رو برای متغیر نیز مشخص کنید
          می توانید از دستورات LDS و STS برای لود کردن و ریختن مقدار یک رجیستر درون یک آدرس مشخص استفاده کنید
          هیچ کس و هیچ چیز نمی تونه مانع رسیدنت به آرزوهات بشه مگر خودت

          دیدگاه


            #6
            پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

            همه چی اینجا هست:


            نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

            دیدگاه


              #7
              پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

              خوب چه کاریه بنویسین:
              Dim Reg16 As Byte At 16

              دیدگاه


                #8
                پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

                نوشته اصلی توسط رضا آقازاده
                خوب چه کاریه بنویسین:
                Dim Reg16 As Byte At 16
                اینکه خطا میده.

                دیدگاه


                  #9
                  پاسخ : نحوه ریختن یک رجیستر AVR مثلا R16 در یک متغیر

                  من این رو بر اساس کد پست قبلی نوشتم. ولی در توضیحاتش میگه که "اگر حافظه مورد نظر به چیزی تخصیص داده شده باشه این عمل صورت نمیگیره" ببینین میتونین با OVERLAY این مشکل رو حل کنین یا نه. اگر نشد از PEEK استفاده کنین. مثلا PEEK(16) این محتوای بایت 16 از آدرس داخلی رو برمیگردونه که متعلق به رجیستر R16 هست. اما الزاما در مورد هر رجیستری صادق نیست. چون شما این نکته رو فراموش کردین که رجیسترها برای انجام عملیات استفاده میشه (بسکام یک زبان سطح بالا هست) بنابراین ممکنه بجای مقدار حقیقی یک مقدار عوضی بگیرین. و در اصل این کار درستی هم نیست. مگر اینکه کار خاصی مد نظرتون باشه.

                  دیدگاه

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