اطلاعیه

Collapse
No announcement yet.

منظور از " شمارنده برنامه " در میکرو چیست؟

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

    منظور از " شمارنده برنامه " در میکرو چیست؟

    دوستان تو نت داشتم در مورد حافطه مطلب میخوندم . تا اینکه رسیدم به این خط ولی منطورشو نفهمیدم .

    AVR می تواند تا ۸ مگابایت حافظه برای برنامه داشته باشد چون شمارنده ی برنامه ی آن حداکثر ۲۲ بیت پهنا دارد (محدوده ی آدرس ۰۰۰۰۰۰ تا ۳FFFFFH) ولی در همه ی تراشه های آن این مقدار تعبیه نمی شود.

    اصلا شمارنده برنامه 22 بیت پهنا دارد یعنی چی؟
    ممنونم/
    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
    (پيش به سوي هدف)

    #2
    پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

    نوشته اصلی توسط hosseinam نمایش پست ها
    دوستان تو نت داشتم در مورد حافطه مطلب میخوندم . تا اینکه رسیدم به این خط ولی منطورشو نفهمیدم .




    اصلا شمارنده برنامه 22 بیت پهنا دارد یعنی چی؟
    ممنونم/
    سلام
    هر پردازنده ای بسته به نوعش دستورالعمل های اجراییش در چند بایت ذخیره میشن. این که در لحظه کدوم خونه از حافظه در حال اجرا هستش، در رجیستری به اسم PC یا Program Counter مشخص میشه. هر بار که یک دستور العمل اجرا میشه، مقدار PC زیاد میشه مگر اینکه وقفه ای رخ بده یا اینکه به دستورات پرش برسه که در اینصورت مقدار PC یهویی تغییر میکنه. البته بعضی جاها بهش IP هم میگن که میشه Instruction Pointer.
    همه کامپیوترها که میکروکنترلرها هم جزوش باشن این رجیستر PC رو دارن. دقت داشته باشید که PC جز رجیسترهای پردازندس و داخل برنامه مثل رجیسترهای I/O که میشن PORTx و UDR و امثالهم که خودتونم میدونید، بهش دسترسی نداریم. وقتی تابعی رو فراخوانی میکنیم یا وقفه ای رخ بده، مقدار PC به شروع اون زیر برنامه یا سرویس وقفه تغییر پیدا میکنه.
    این که شمارنده برنامه 22 بیت پهنا داره یعنی این که PC تنها میتونه حداکثر 2 به توان 22 خونه از حافظه رو آدرس دهی کنه.

    دیدگاه


      #3
      پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

      نوشته اصلی توسط hosseinam نمایش پست ها
      دوستان تو نت داشتم در مورد حافطه مطلب میخوندم . تا اینکه رسیدم به این خط ولی منطورشو نفهمیدم .




      اصلا شمارنده برنامه 22 بیت پهنا دارد یعنی چی؟
      ممنونم/
      سلام.
      وقتتون به خیر.
      یعنی یک شمارنده هست که 22 بیت داره. پس 2 به توان 22 مقدار مختلف (4194304 دسیمال) میتونه داشته باشه. که مقدار هگز این عدد 400000 هست.ولی چون از مقدار 0 شروع به شمردن میکنه میتونه مقداری از 0 تا 4194303 ( یا در مبنای هگز از 0 تا 3FFFFF) داشته باشد.
      موفق باشید.

      ببخشید اقای hossein.m98 پاسخ دادن. مهندس ببخشید.
      نمیشه دیگه پست رو پاک کرد.

      دیدگاه


        #4
        پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

        نوشته اصلی توسط saati.sms نمایش پست ها
        سلام.
        وقتتون به خیر.
        یعنی یک شمارنده هست که 22 بیت داره. پس 2 به توان 22 مقدار مختلف (4194304 دسیمال) میتونه داشته باشه. که مقدار هگز این عدد 400000 هست.ولی چون از مقدار 0 شروع به شمردن میکنه میتونه مقداری از 0 تا 4194303 ( یا در مبنای هگز از 0 تا 3FFFFF) داشته باشد.
        موفق باشید.

        ببخشید اقای hossein.m98 پاسخ دادن. مهندس ببخشید.
        نمیشه دیگه پست رو پاک کرد.
        نه آقا این چه حرفیه راحت باشید.

        دیدگاه


          #5
          پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

          سلام دوستان کسی در مورد برنامه دستگاه توزیع مایع ضدعفونی می تونه کمکم کنه با بسکام

          دیدگاه


            #6
            پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

            ممنونم دوستان.
            تو این جمله از 8 مگ حافظه هم نام آورده شده.
            خوب این هشت مگ از کجا بدست آورد؟ خوب هر آدرس به یه بایت اشاره میکنه دیگه . اینم با این پهنای آدرس نهایتا بتونه 4194303 بایت رو آدرس دهی کنه دیگه.
            نگرفتم .

            ممنونم از شما .
            به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
            (پيش به سوي هدف)

            دیدگاه


              #7
              پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

              نوشته اصلی توسط hosseinam نمایش پست ها
              ممنونم دوستان.
              تو این جمله از 8 مگ حافظه هم نام آورده شده.
              خوب این هشت مگ از کجا بدست آورد؟ خوب هر آدرس به یه بایت اشاره میکنه دیگه . اینم با این پهنای آدرس نهایتا بتونه 4194303 بایت رو آدرس دهی کنه دیگه.
              نگرفتم .

              ممنونم از شما .
              من دقیق به ساختار AVR وارد نیستم که بدونم چجوری آدرس دهی میشه ولی باید توجه داشته باشید فلش AVR عرضش 16 بیته. با 22 بیت همونطور که گفتید میشه حدود 4 میلیون خونه از حافظه رو آدرس دهی کرد اما این که خونه ها رو 8 بیتی در نظر میگیره یا 16 بیتی و آدرس دهی میکنه، من خبر ندارم!

              دیدگاه


                #8
                پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

                نوشته اصلی توسط hossein.m98 نمایش پست ها
                من دقیق به ساختار AVR وارد نیستم که بدونم چجوری آدرس دهی میشه ولی باید توجه داشته باشید فلش AVR عرضش 16 بیته. با 22 بیت همونطور که گفتید میشه حدود 4 میلیون خونه از حافظه رو آدرس دهی کرد اما این که خونه ها رو 8 بیتی در نظر میگیره یا 16 بیتی و آدرس دهی میکنه، من خبر ندارم!

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

                شما حافظه رجیستر از R0 تا R31 رو که دیدین . خوب این رجیستر از 26 تا 31 که فقط آدرس تو خودش داره . از 1 تا 15 چه بدردی میخوره؟!
                اصلا رجیستر های عمومی R0-R1 دقیقا کارشون چیه ؟
                باز میتونیم متغییر خودمون تعریف کنیم و تو رجیستر هم جای sram بریزیم . مگه چقدر رجیستر ظرفیت داره!!!

                میشه لطفا در این ضمینه توضیحی بفرمایید.
                ممنونم.
                به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                (پيش به سوي هدف)

                دیدگاه


                  #9
                  پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

                  نوشته اصلی توسط hosseinam نمایش پست ها
                  ممنونم مهندس.
                  چند روزی بود گه در مورد حافظه دارم تحقیق میکنم. و امروز تو کارم رو مگا 64 که کد جا نداشتم - با دو خط کد تونستم اطلاعات مورد نظر رو از حافظه بگیرم . جای اینکه چند خط اضافه کد و دستور بنویسم . خیلی مشتاق شدم بیشتر از این بدونم چی به چیه.

                  شما حافظه رجیستر از R0 تا R31 رو که دیدین . خوب این رجیستر از 26 تا 31 که فقط آدرس تو خودش داره . از 1 تا 15 چه بدردی میخوره؟!
                  اصلا رجیستر های عمومی R0-R1 دقیقا کارشون چیه ؟
                  باز میتونیم متغییر خودمون تعریف کنیم و تو رجیستر هم جای sram بریزیم . مگه چقدر رجیستر ظرفیت داره!!!

                  میشه لطفا در این ضمینه توضیحی بفرمایید.
                  ممنونم.
                  ببینید هر پردازنده ای حداقل یک واحد ALU داره که کارهای حسابی، منطقی و شیفت بیتی رو انجام میده. اما این ALU معمولا فقط به یکسری رجیسترهای خاص پردازنده متصل میشه. یعنی شما اگر مثلا بخوایید 2 عدد رو با هم جمع کنید، باید این دو عدد رو در رجیسترهای قابل دسترسی ALU قرار بدید و از ALU بخوایید عمل جمع رو انجام بده و حاصل رو در یکی از همین رجیسترها قرار بده.
                  توی AVR هم همونطوری که گفتید این رجیسترها وجود دارن و 32 تا هستند که اعمال پردازنده روی اون ها انجام میشه. حالا بعضی از این ها همونطوری که گفتید کاربردای دیگه ای مثل دسترسی پیدا کردن به فلش هم دارن. اما کماکان بقیشونم کاربردهای خاص خودشونو دارن. چون اسمبلی AVR زیاد کار نکردم، دقیق نمیدونم کدوماشون چه کاربرد خاصی دارن.

                  اما در مورد SRAM. ببینید همونطوری که گفتم رجیسترهای پردازنده برای اعمال حسابی و منطقی به کار میرن؛ اما در عین حال اونقدری فضا ندارن که جواب گوی نیاز برنامه باشن. به خاطر همین وقتی عملیاتمون با یک متغیر تموم شد، اونو در SRAM ذخیره میکنیم برای بعد که دوباره بیاریمشون توی رجیسترها. در واقع SRAM فقط قابلیت حفظ مقادیر رو داره و تا جایی که اطلاع دارم مستقیم نمیشه روش اعمال حسابی و منطقی انجام داد.

                  دیدگاه


                    #10
                    پاسخ : منظور از " شمارنده برنامه " در میکرو چیست؟

                    نوشته اصلی توسط hossein.m98 نمایش پست ها
                    ببینید هر پردازنده ای حداقل یک واحد ALU داره که کارهای حسابی، منطقی و شیفت بیتی رو انجام میده. اما این ALU معمولا فقط به یکسری رجیسترهای خاص پردازنده متصل میشه. یعنی شما اگر مثلا بخوایید 2 عدد رو با هم جمع کنید، باید این دو عدد رو در رجیسترهای قابل دسترسی ALU قرار بدید و از ALU بخوایید عمل جمع رو انجام بده و حاصل رو در یکی از همین رجیسترها قرار بده.
                    توی AVR هم همونطوری که گفتید این رجیسترها وجود دارن و 32 تا هستند که اعمال پردازنده روی اون ها انجام میشه. حالا بعضی از این ها همونطوری که گفتید کاربردای دیگه ای مثل دسترسی پیدا کردن به فلش هم دارن. اما کماکان بقیشونم کاربردهای خاص خودشونو دارن. چون اسمبلی AVR زیاد کار نکردم، دقیق نمیدونم کدوماشون چه کاربرد خاصی دارن.

                    اما در مورد SRAM. ببینید همونطوری که گفتم رجیسترهای پردازنده برای اعمال حسابی و منطقی به کار میرن؛ اما در عین حال اونقدری فضا ندارن که جواب گوی نیاز برنامه باشن. به خاطر همین وقتی عملیاتمون با یک متغیر تموم شد، اونو در SRAM ذخیره میکنیم برای بعد که دوباره بیاریمشون توی رجیسترها. در واقع SRAM فقط قابلیت حفظ مقادیر رو داره و تا جایی که اطلاع دارم مستقیم نمیشه روش اعمال حسابی و منطقی انجام داد.

                    بسیار ممنونم از شما دوسته عزیز
                    به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
                    (پيش به سوي هدف)

                    دیدگاه

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