اطلاعیه

Collapse
No announcement yet.

رجیستر چیکار میکند

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

    رجیستر چیکار میکند

    با سلام به دوستان
    میخاستم بپرسم که رجیستر در میکرو چیه.چیکار میکنه؟چه فایده ایی داره؟میشه ازش تو بسکام استفاده کرد؟اگه قابل بنامه نویسی است چجوری باید انجام بدیم؟آیا رجیستر همون پایه های i/o میکرو هست؟چه کاری ازش بر می آد؟
    ببخشید اینهمه سوال شد.آخه درک نکردم رجیستر چیه<میدونم میکرو 32 رجیستر داره ها.اگه میشه واضح توضیح بدین تا بفهمم.ممنون
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)

    #2
    پاسخ : رجیستر چیکار میکند

    سلام :smile:
    خب شاید بشه گفت که یه متغییر یا ثابت هستش که بین سخت افزارهای میکرو و برنامه ای که نوشته ارتباط برقرار میکنه.
    تو هر زبانی باید ازش استفاده کنی تا بتونی سخت افزار هاشو کنترل کنی. چه بسکام چه c
    قایل برنامه نویسی نیست؛ قابل مقدار دهیه!

    دیدگاه


      #3
      پاسخ : رجیستر چیکار میکند

      نوشته اصلی توسط hosseinam1370
      با سلام به دوستان
      میخاستم بپرسم که رجیستر در میکرو چیه.چیکار میکنه؟چه فایده ایی داره؟میشه ازش تو بسکام استفاده کرد؟اگه قابل بنامه نویسی است چجوری باید انجام بدیم؟آیا رجیستر همون پایه های i/o میکرو هست؟چه کاری ازش بر می آد؟
      ببخشید اینهمه سوال شد.آخه درک نکردم رجیستر چیه<میدونم میکرو 32 رجیستر داره ها.اگه میشه واضح توضیح بدین تا بفهمم.ممنون
      سلام

      ریجستر کلا رابط شما و میکرو هست....با ریجستر شما به میکرو میفهمونی که باید چه کاری انجام بده!

      البته برای مثال شما یه ریجستر داری به اسم tccr که وظیفش کنترل پنل تایمر هست ، شما بهش مقدار میدی و تایمر کانتر هم براتون انجام میده.

      دیدگاه


        #4
        پاسخ : رجیستر چیکار میکند

        رجیستر یا ثبّات بمعنی ثبت کننده به بخش کوچکی از حافظه یک پروسسور میگن.
        رجیسترها معمولا به خانه هایی از حافظه میگن که با مکانیزم هایی متفاوت از حافظه معمولی استفاده میشن.
        این مکانیزم ها باعث میشه عملیات ریاضی و منطقی سریع تر انجام بشن.
        چیزی که دوستان اشاره کردن بیشتر مفهموم SFR (special function register)l یا "رجیستر کاربرد خاص" رو شامل میشه که این رجیستر ها حاوی مقادیری هستن که ماجول های سخت افزار از اونها برای کارکرد خودشون استفاده میکنن.
        مثلاً بادریت سریال یا مقدار سرریز تایمر و ...

        دیدگاه


          #5
          پاسخ : رجیستر چیکار میکند

          پس اینطور که فهمیدم ،ما اصلا به رجیستر کاری نداریم.برنامه ایی که مینویسیم یا متغییر که تو برنامه هست خودش میره تو رجیستری،
          اصلا منظورم اینه که مثلا ما مینویسیم porta.0 = 1 نمیشه رجیستر ها رو اینجوری نوشت؟ مثلا if register1 = 1 then set portc.0.
          حالا یچیز تو مایه های این دستور if مثلا Tنخندینا.
          به این نحو نمیشه استفاده کرد؟
          اگه نمیشه پس چرا میگن رجیستر ac0( خروجی مقایسه کننده آنالوگ) یک میشه در صورتی که پایه مورد نظر وجود نداره؟
          ببخشیدآ زیاد میپرسم
          به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
          (پيش به سوي هدف)

          دیدگاه


            #6
            پاسخ : رجیستر چیکار میکند

            نوشته اصلی توسط hosseinam1370
            پس اینطور که فهمیدم ،ما اصلا به رجیستر کاری نداریم.برنامه ایی که مینویسیم یا متغییر که تو برنامه هست خودش میره تو رجیستری،
            اصلا منظورم اینه که مثلا ما مینویسیم porta.0 = 1 نمیشه رجیستر ها رو اینجوری نوشت؟ مثلا if register1 = 1 then set portc.0.
            حالا یچیز تو مایه های این دستور if مثلا Tنخندینا.
            به این نحو نمیشه استفاده کرد؟
            اگه نمیشه پس چرا میگن رجیستر ac0( خروجی مقایسه کننده آنالوگ) یک میشه در صورتی که پایه مورد نظر وجود نداره؟
            ببخشیدآ زیاد میپرسم
            اگه شما با بیسیک برنامه بنویسید دقیقا همین حرف خط اول شما درسته...شما نیاز نیست با ریجستر ها سر و کله بزنید...خود بسکام براتون انجام میده.ولی دونستنش خالی از لطف نیست.

            بین خودمون باشه ولی این porta هم که مینویسی خودش یه ریجستر هست که مستقیم وصل شده به پورت A ... یعنی اگه داخل بیت اولش نوشتی 1 بیت اول پورت a هم میشه 1 ... فقط یه تفاوت کوچیک داره اونم این که بیسکام اومده دسترسی بیتی رو براش اضافه کرده یعنی شما میتونی دقیقا بگی کدوم بیتش یک بشه (همین خطی که نوشتید portb.1=1) ولی این بحث دیگه داخل ریجستر ها مطرح نیست... یعنی شما نمیتونی بنویسی TCCR0.1=1;

            باید به جاش اینو بنویسی (به زبان سی )
            TCCR0=0x02;

            اون قسمت آخر سوالت رو هم بگم که این ریجستر ها همشون داخل RAM میکرو هستند...یعنی هر چی شما مینویسی داخلشون و یا cpu داخلشون مینویسیه داخل خونه های مشخصی از ram نوشته میشه که هم شما بهش دسترسی داشته باشی هم خود cpu ، پس چون جزئی از حافظه ی ram هستند پس قابلیت 0 و1 شدن رو هم دارن ....

            اینو ببین :



            البته این مربوط به میکرو ی PIC میشه ولی توجه بکنی میبینی مثلا ریجستری که شما به اسم porta در میکروی pic میشناسی داخل آدرس 05h از حافظه ی ram قرار داره....

            امیدوارم توضیحاتم مفید بوده باشه.

            دیدگاه


              #7
              پاسخ : رجیستر چیکار میکند

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

              دیدگاه


                #8
                پاسخ : رجیستر چیکار میکند

                خیلی ممنون از دوستان ،اطلاعاتم در مورد این زیاد شد.
                فقط یه سوال که کلم رو خورد اینه که ، پس رجیستر ac0( خروجی مقایسه کننده آنالوگ) که یک رجیستر هست و ما از بسکام بهش دسترسی نداریم،چجوری میتونیم ازش استفاده کنیم،یعنی اینکه هر وقت ولتاژ پایه + بیشتر از - شد رجیستر ac0 یک میشه ، حالا ما چطور باید بگیم که اگه این پایه یک شد تو بیا porta.1 را ست کن؟
                یا اصلا میشه اینجوری نوشت؟ if ac0 = 1 then set porta.1
                یا چجوری میشه استفاده کرد از این رجیستر؟
                دستتون درد نکنه که بی منت پاسخ می دهید :applause:
                به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                (پيش به سوي هدف)

                دیدگاه


                  #9
                  پاسخ : رجیستر چیکار میکند

                  نوشته اصلی توسط hosseinam1370
                  خیلی ممنون از دوستان ،اطلاعاتم در مورد این زیاد شد.
                  فقط یه سوال که کلم رو خورد اینه که ، پس رجیستر ac0( خروجی مقایسه کننده آنالوگ) که یک رجیستر هست و ما از بسکام بهش دسترسی نداریم،چجوری میتونیم ازش استفاده کنیم،یعنی اینکه هر وقت ولتاژ پایه + بیشتر از - شد رجیستر ac0 یک میشه ، حالا ما چطور باید بگیم که اگه این پایه یک شد تو بیا porta.1 را ست کن؟
                  یا اصلا میشه اینجوری نوشت؟ if ac0 = 1 then set porta.1
                  یا چجوری میشه استفاده کرد از این رجیستر؟
                  دستتون درد نکنه که بی منت پاسخ می دهید :applause:
                  نه عزیزم.... این که میگه ac0 رو یک میکنه همش رو یک نمیکنه که شما با 1 مقایسش میکنی .... یه بیتش رو یک میکنه...باید اون بیت رو با یک مقایسش کنی... در مورد شناسایی ریجستر هم وقتی شما هدر میکرو رو فراخوانی میکنی این ریجستر ها هم برای بیسکام معنی پیدا میکنه....پس اگه همینجوری بنویسی AC0 بسکام شناسائیش میکنه.

                  موفق باشید

                  دیدگاه

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