اطلاعیه

Collapse
No announcement yet.

فرق #byte و #define

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

    فرق #byte و #define

    با سلام. دوستان سوال اینه که فرق بین define# و byte# چی هست یه برنامه ای هست ک توش از pic16f876 استفاده کرده و پورت a رو با byte# 0x86 اگه اشتباه نکنم معرفی کرده حالا اگه بخایم از 18f452 استفاده کنیم ک هگز پورت a hاش f92 باشه میشه از byte# استفاده کرد یا از define # میشه .
    اگه فرق این دوتا تو کاربرد رو هم ذکر کنید،ممنون میشیم.
    من الله التوفیق :nerd:
    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
    ....

    #2
    پاسخ : فرق #byte و #define

    نوشته اصلی توسط amanver
    با سلامک. دوستان سوال اینه که فرق بین define# و byte# چی هست یه برنامه ای هست ک توش از pic16f876 استفاده کرده و پورت a رو با byte# 0x86 اگه اشتباه نکنم معرفی کرده حالا اگه بخایم از 18f452 استفاده کنیم ک هگز پورت a hاش f92 باشه میشه از byte# استفاده کرد یا از define # میشه .
    اگه فرق این دوتا تو کاربرد ع=رو هم ذکر کنید،ممنون میشیم.
    من الله التوفیق :nerd:
    https://www.ccsinfo.com/forum/viewtopic.php?t=18770


    [code=c]#define PORTA 0x05
    PORTA = 0 [/code]
    is equivalent to just writing
    0x05 = 0 (try to assign 0 to a litteral value = error -this is like writing 3=1)

    [code=c]#byte PORTA = 0x05
    PORTA = 0 [/code]
    I think is equivalent to writing
    [code=c]*0x05 = 0 [/code]
    (store 0 in an address = no error)

    دیدگاه


      #3
      پاسخ : فرق #byte و #define

      همونطور که توی لینکی که آقای مستقیمی دادند گفته define یه جورایی فقط برای جایگزین کردن یک عبارت بکار میره.
      byte برای اختصاص یک نام به یک آدرس از حافظه به کار میره.

      دیدگاه


        #4
        پاسخ : فرق #byte و #define

        خیلی ممنون.پس استفاده از بایت همانند استفاده از اشاره گرهاست ک ادرس خانه های حافظه را در خودش نگه میداره. حال اگر بنویسیم
        byte porta 0x952# درست است؟
        رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
        ....

        دیدگاه


          #5
          پاسخ : فرق #byte و #define

          نوشته اصلی توسط amanver
          خیلی ممنون.پس استفاده از بایت همانند استفاده از اشاره گرهاست ک ادرس خانه های حافظه را در خودش نگه میداره. حال اگر بنویسیم
          byte porta 0x952# درست است؟
          به مثال بالا توجه کن.
          برای قرار دادن کد هم از ابزار کد انجمن استفاده کن
          [code=c]#byte porta = 0x952[/code]

          دیدگاه


            #6
            پاسخ : فرق #byte و #define

            ممنون ولی نگفتین درسته یانه؟ یعنی بایت ب معنای 1 بایت نیست دیگه ایا؟
            رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
            ....

            دیدگاه


              #7
              پاسخ : فرق #byte و #define

              نوشته اصلی توسط amanver
              ممنون ولی نگفتین درسته یانه؟ یعنی بایت ب معنای 1 بایت نیست دیگه ایا؟
              دستور بایت داره به یه خونه از حافظه ی میکرو رو اشاره میکنه و به اون خونه اسم اختصاص میده. خونه های حافظه هم که همه شون 1 بایتی هستن.

              دیدگاه


                #8
                پاسخ : فرق #byte و #define

                ff2 ک مربوط ب intcon میکروی 18f452 هست،یک بایتیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ oo: oo: oo: oo: oo:
                رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
                ....

                دیدگاه


                  #9
                  پاسخ : فرق #byte و #define

                  نوشته اصلی توسط amanver
                  ff2 ک مربوط ب intcon میکروی 18f452 هست،یک بایتیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ oo: oo: oo: oo: oo:
                  مگه قراره چند بایت باشه؟؟!!
                  بخش REGISTER 8-1: INTCON REGISTER رو مطالعه بکن.
                  FF2 آدرس اون رجیستر هست.
                  متن زیر رو از دیتاشیت برداشتم که توضیحات بیتهای این رجیستر هست.


                  bit 7 GIE/GIEH: Global Interrupt Enable bit
                  When IPEN = 0:
                  1 = Enables all unmasked interrupts
                  0 = Disables all interrupts
                  When IPEN = 1:
                  1 = Enables all high priority interrupts
                  0 = Disables all interrupts
                  bit 6 PEIE/GIEL: Peripheral Interrupt Enable bit
                  When IPEN = 0:
                  1 = Enables all unmasked peripheral interrupts
                  0 = Disables all peripheral interrupts
                  When IPEN = 1:
                  1 = Enables all low priority peripheral interrupts
                  0 = Disables all low priority peripheral interrupts
                  bit 5 TMR0IE: TMR0 Overflow Interrupt Enable bit
                  1 = Enables the TMR0 overflow interrupt
                  0 = Disables the TMR0 overflow interrupt
                  bit 4 INT0IE: INT0 External Interrupt Enable bit
                  1 = Enables the INT0 external interrupt
                  0 = Disables the INT0 external interrupt
                  bit 3 RBIE: RB Port Change Interrupt Enable bit
                  1 = Enables the RB port change interrupt
                  0 = Disables the RB port change interrupt
                  bit 2 TMR0IF: TMR0 Overflow Interrupt Flag bit
                  1 = TMR0 register has overflowed (must be cleared in software)
                  0 = TMR0 register did not overflow
                  bit 1 INT0IF: INT0 External Interrupt Flag bit
                  1 = The INT0 external interrupt occurred (must be cleared in software)
                  0 = The INT0 external interrupt did not occur
                  bit 0 RBIF: RB Port Change Interrupt Flag bit
                  1 = At least one of the RB7:RB4 pins changed state (must be cleared in software)
                  0 = None of the RB7:RB4 pins have changed state

                  دیدگاه


                    #10
                    پاسخ : فرق #byte و #define

                    اقا یه لحظه توقف فرمایید،بحث یه جوری درهم رفت.
                    اینکه رجیستر intcon یک بایت هست ک شکی نیست. ولی ادرس این رجیستر 12 بیت هست. درسته؟
                    اونجوری ک بنده متوجه شدم، این دوستور #بایت ادرس رجیستر رو نگه میداره نه مقدارش رو.
                    حالا ادرس رجیستر بیش از یک بایته دیگه. میگم دستور #بایت اینجوری نیس ک ادرس هایی توش ذخیره بشه ک فقط یک بایتی اند.؟ متوجه منظورم شدید؟
                    این بار دیگه ترکی مینویسم ها oo: oo: oo: oo: oo: oo: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry: :angry:
                    رو به خودت نسبت هستی مده!**دل به چنین مستی و پستی مده! //زانچه نداری ز چه افسردهآ‌ای*و زغم و اندوه دل آزردهآ‌ای؟!//گر ببرد ور بدهد دست دوست*ور بِبَرد ور بنهد مُلک اوست//ور بِکِشی یا بکُشی دیو غم **کج نشود دست قضا را قلم//آنچه خدا خواست همان میآ‌شود**وآنچه دلت خواست نه آن میآ‌شود.
                    ....

                    دیدگاه


                      #11
                      پاسخ : فرق #byte و #define

                      نه دیگه مقداری که توی برنامه میدید رو به اون آدرسی که در تعریف #byte گفتید نسبت میده
                      AYRIC

                      دیدگاه

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