اطلاعیه

Collapse
No announcement yet.

خواند و نوشتن روی eeprom میکرو avr

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

    خواند و نوشتن روی eeprom میکرو avr

    سلام به دوستان

    اگه بخوام رو eeprom بخونم و بنویسم بعضی دوستان میگن باید 10 میلی ثانیه بعد از خوندن و نوشتن تاخیر ایجاد بشه
    ;eep = a
    (delay_ms(10
    1_چرا من بدون تاخیر براحتی با eeprom کار میکنم و مشکلی پیش نمیاد ؟؟
    2_اصلا وقتی ما یه متغیر رو تو eeprom نوشتیم دیگه چرا بعدش تاخیر بزاریم ؟؟

    ممنون میشم به هر دوسوال دقیق توضیح بدید
    متشکر از توجهتون
    آرزوی سرافرازی برای ایران عزیز . . .



    #2
    پاسخ : خواند و نوشتن روی eeprom میکرو avr

    سلام
    کد:
    
    When the EEPROM is read, the CPU is halted for four clock cycles before the next instruction is executed. When the EEPROM is written, the CPU is halted for two clock
    cycles before the next instruction is executed.
    به نظرم خوندن دیتاشیت و مراجعه به نمونه کدهای قید شده خالی از لطف نیست.
    موفق باشید
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : خواند و نوشتن روی eeprom میکرو avr

      نوشته اصلی توسط سوران آراسته نمایش پست ها
      سلام
      کد:
      
      When the EEPROM is read, the CPU is halted for four clock cycles before the next instruction is executed. When the EEPROM is written, the CPU is halted for two clock
      cycles before the next instruction is executed.
      به نظرم خوندن دیتاشیت و مراجعه به نمونه کدهای قید شده خالی از لطف نیست.
      موفق باشید
      اتفاقا سوال منم هست همه ما میدونیم که سی پی یو بعد ازرسیدن به دستور delay فقط داره تابه تاخیر رو اجرا میکنه
      وقتی eeprom ر,و خوندیم و دستور اجرا شده چرا الکی باید دستور وقفه بزاریم ؟ اگر 4 سیکل مگه سی پی یو ما تو تابع تاخیر نیست پس چطور کار انجام میده ؟

      با سپاس فراوان .
      I'm going to
      RWTH Aachen
      University

      دیدگاه


        #4
        پاسخ : خواند و نوشتن روی eeprom میکرو avr

        یه سوال بعد ازخواندن یا نوشتن ... بزارید یه جور دیگه سوال کنم به غیر از اینکه ؟ بعد از عملیات خواندن یا نوشتن خطوط برنامه میره سراغ wait اگه نوشته شده باشه
        بزارید با یه کد بسکام مثال بزنم
        کانفیگ کریستال رو تو کد برنامه بزارید 100000(نرم افزاری)
        کریستال بیرونی رو هم 16 مگا بزارید (سخت افزاری)
        حالا یه دستور به ال سی دی بدید (یه نوشته )
        بعد دستور بزنید 10ثانیه به ایسته wait 10
        نتیجه قاط زدن ال سی دی هستش چون در اختصاص تقسیمات سراسر وقفه های داخلی 100000 سریع تر از زمان حداقل دریافت زمان بارگیری اطلاعات ال سی دی است
        به طوری که حال برگردیم ان کانفیگ 100000 را به 1000000 تغییر دهیم حالا ال سی دی در بازه زمانی مناسب تو بارگیری اطلاعات هستش پشتبندش wait بزارید یا نزارید هیچ تاثیری توی دستور قبلی نداره این یه قانونه برنامه است
        وقتی wait ایی نوشته میشه خطوط برنامه با توجه به دستور العمل بارگذاری شده در دستور کار سی پی یو شمارشی در حلقه ایی می کند وسپس به بیرون می زند و ان وقفه تولید می شود در ظاهر سکته قلبی می کنه و بعد دوباره جون میگیره و اون حلقه داخلی به جامپ های تایمر و سگ نگهبان و چندتا چیز دیگه که صلاح دونستن حساسه و به بیرون هدایت و سپس بر می گرده ادامه شمارش داخلی برای وقفه wait
        حالا خودتون قضاوت کنید wait لازمه یانه
        برنامه نویس هایی که مطلقا از wait ها استفاده نمی کنند از نعمت سریع ترین مرور خطوط کلی برنامه بهره مند می شوند

        دیدگاه


          #5
          پاسخ : خواند و نوشتن روی eeprom میکرو avr

          یه سوال پیش میآد ،
          پس چرا تو کتابها و دیتاشیت ، نوشته 5 یا 10 میلی ثانیه باید صبر کرد تا در eeprom نوشته بشه؟!! با حرفتون کاملا تضاد داره.

          مثلا نمیتونیم بگیم که وقتی wait داره اجرا میشه ، که خوب RC داخلی داره پالس میده هم برای دستور wait و هم برای ذخیره کردن اطلاعات ؟؟
          به سمت نور خورشيد حرکت کن،تو ميتوني تابش خورشيد رو حس کني ،حتي اگه کور باشي.
          (پيش به سوي هدف)

          دیدگاه


            #6
            پاسخ : خواند و نوشتن روی eeprom میکرو avr

            شما با بسکام وقتی کد مینویسی احتیاج نداری تاخیر بزاری چون بسکام بعد از نوشتن تاخیر رو اجرا میکنه
            ولی تو زبان اسمبلی باید رعایت کنی وتاخیر نوشتن بیشتر از خواندن هستش
            به همین دلیل و دلایل دیگه با بسکام نمیشه به حداکثر سرعت میکرو رسید

            دیدگاه


              #7
              پاسخ : خواند و نوشتن روی eeprom میکرو avr

              بحث کل کل نیست که اگر خود من هم اشتباه می کنم دوست دارم یاد بگیرم
              بریم سراغ یه مثال :
              قبل دستور رایت ای پی رام پورتی را روشن
              دستور رایت ای پی رام را بدهید
              پورت راخاموش کنید
              دستور waitms 1 را بدهید
              پورت را دوباره روشن کنید
              خروجی پورت رو با اسکوپ مشاهده کنید ببینید چه اتفاقی می افته
              موفق باشید

              دیدگاه


                #8
                پاسخ : خواند و نوشتن روی eeprom میکرو avr

                خود سازنده برنامه گفته دستور WAIT دقیق نیست و از تایمر استفاده کنید که این مورد رو تجربی امتحان کردم
                شما برای تشخیص از WAIT استفاده کردی؟؟
                شما تو دیتاشیت میکرو دیدی چقدر زمان لازم داره برای نوشتن ؟؟ که این برنامه رو نوشتی؟؟

                دیدگاه


                  #9
                  پاسخ : خواند و نوشتن روی eeprom میکرو avr

                  دوستان الان که یکم تحقیق کردم انگاری یه ماژول داره که بعد از اون سیکل اطلاعات میاد تو باس مثلا اگر ما بگیم از ای 2 پیرام بگیر و رو ال سی دی نمایش بده احتمال این که اشتباه نشون بده خیلی زیاده
                  یا این که از ای 2 پیرام بریزه توی متغیر و بلافاصله ازش جایی استفاده کنیم به مشکل میخوریم من اول ها فکر میکردم تو ماژول سریال تا اطلاعات ارسال نشه سی پی یو من درگیره اما بعد ها فهمیدم که این طور نیست و سی پی یو مینویسه و میره و ماژول کارش رو انجام میده الان حدس میزنم این هم به همون شکله

                  درسته یا اشتباه میکنم ؟
                  I'm going to
                  RWTH Aachen
                  University

                  دیدگاه


                    #10
                    پاسخ : خواند و نوشتن روی eeprom میکرو avr

                    من فقط بسکام کار کردم و بس
                    جدیدترین ویرایش توسط ssmq; ۰۱:۱۴ ۱۳۹۵/۰۷/۱۲.

                    دیدگاه


                      #11
                      پاسخ : خواند و نوشتن روی eeprom میکرو avr

                      تو سریال بافر اینکارو انجام میده اگه از سریال نرم افزاری استفاده کنی سی پی یو کامل درگیر میشه و تا ارسال تموم نشه نمیره خط بعدی ولی تو حالت سخت افزار اطلاعات به بافر سریال میره و سخت افزار ((یک شیفت رجیستر)) اطلاعات سریال رو ارسال میکنه
                      ولی برای EPROM بافری وجود نداره و کامپایلر در هنگام خوندن تا اطلاعات داخل رجیستره میکرو نشه CPU رو نگه میداره
                      برای نوشتن کامپایلر تاخیر کمی ایجاد میکنه چون معمولا بعد از فرستادن اطلاعات به EPROM تو برنامه کسی بلافاصله اون رو نمیخونه که خطا بوجود بیاد

                      دیدگاه


                        #12
                        پاسخ : خواند و نوشتن روی eeprom میکرو avr

                        سلام به دوستان و تشکر از توجهشون

                        خواهشا در مورد زبان c و کدویژن صحبت بشه چون بسکام خودش تابع داره برای این کار
                        اما در کدویژن تابعی وجود نداره
                        حالا بالاخره ما بعد از این که در eeprom نوشتیم یا ازش خواندیم باید دستور تاخیر بزاریم یا نه ؟؟
                        میخوام تکلیف همه روشن بشه که واقعا باید بزاریم یا نه ؟؟؟

                        با تشکر
                        آرزوی سرافرازی برای ایران عزیز . . .


                        دیدگاه


                          #13
                          پاسخ : خواند و نوشتن روی eeprom میکرو avr

                          سلام به نظرم این تاخیر برای نوشتن دوباره در eeprom هستش،درواقع شما وقتی یه کاراکتر رو تو یه حافظه مشخص از eeprom مینویسید سی پی یو بعد از اجرای نوشتن به سرعت میتونه عملیات های دیگه رو انجام بده اما حتی در حین اجرای دستورات دیگه هم ممکنه که نوشتن در eeprom هنوز تکمیل نشده باشه و چیزی حدود ۱۰میلی ثانیه طول بکشه که با فرض کلاک ۱ مگاهرتز سی پی یو تو این مدت ۱۰/۰۰۰ سیکل یعنی تقریباً ۱۰/۰۰۰ دستور میتونه انجام بده،خوب اگه تو این مدت دوباره قصد نوشتن تو eeprom رو نداشته باشیم مشکلی پیش نمیاد و نیازی به wait نیست اما اگر بخوایم دوباره تو eeprom بنویسیم باید صبر کنیم تا نوشتن قبلی کارش تموم بشه(توجه کنیم که تو این مدت سی پی یو درگیر نوشتن تو eeprom نیست) حالا از کجا بفهمیم که عمل نوشتن تموم شده؟با بررسی یه فلگ که الآن نمیدونم اسمش چیه
                          برای همین مدت زمان طولانی نوشتن هستش که pic یه وقفه اتمام نوشتن در eeprom داره تا سی پی یو درگیر این مدت زمان نشه با یه delay طولانی برای میکرو
                          البته نمیدونم avr هم این وقفه رو داره یا خیر،که البته فکر کنم داشته باشه
                          موفق باشید
                          [آموزشی] کنترل رله با پیامک توسط sim800l
                          [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
                          [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
                          [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
                          صفحه اینستاگرام : ecdco_ir

                          دیدگاه


                            #14
                            پاسخ : خواند و نوشتن روی eeprom میکرو avr

                            سلام دوست عزیز

                            پست شماره 11 ( بالای صفحه ) رو بخونید
                            خلاصش اینه : eeprom بافر نداره که cpu مقدار مورد نظر رو بهش بده و یه سیستم دیگه بیاد محتوای بافر رو تو eeprom بریزه
                            اینطور نیست که cpu دیتا رو به بافر بده و بعد بره سراغ کارای دیگه
                            در واقع cpu شخصا میاد کار انتقال دیتا تو eeprom رو انجام میده بنابراین بعد از اتمام کار دیگه کار تمومه و تاخیر معنی نمیده

                            اما بازم همه اینها نظر هستش و هنوز در این تاپیک به نتیجه نرسیدیم
                            آرزوی سرافرازی برای ایران عزیز . . .


                            دیدگاه


                              #15
                              پاسخ : خواند و نوشتن روی eeprom میکرو avr

                              اتفاقاً رجیستر دیتا eedr همون بافرمونه
                              شما این شکلو که از دیتاشیت atmega128 گرفتم که برای بقیه هم همینطوره نگاه کن


                              همونطور که مشخصه eeprom به صورت جداگانه از اسیلاتور rc داخلی کلاک میخوره و سی پی یو درگیر مدت زمان نوشتن نمیشه و میتونه بقیه دستورات رو اجرا کنه
                              شما دیتاشیت مبحث eeprom رو بخون کاملاً مشخصه،برای mega128 که از صفحه ۲۰ بخون همه چیز مشخصه
                              [آموزشی] کنترل رله با پیامک توسط sim800l
                              [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
                              [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
                              [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
                              صفحه اینستاگرام : ecdco_ir

                              دیدگاه

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