اطلاعیه

Collapse
No announcement yet.

real time در AVR

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

    real time در AVR

    سلام دوستان
    من برنامه ای با Mega16 نوشتم که در اون از RTC درونی میکرو استفاده کردم که این زمان روی 7SEGMENT نمایش داده میشه و در کنار این کارهای دیگه ای رو انجام میده که مورد بحث نیست.
    مشکل اینجاست که میکرو زمان دقیق رو به من نمیده یعنی اینکه تقریباً توی 17 ساعت 20 دقیقه جلو میفته . :eek:
    من از کریستال داخلی میکرو استفاده کردم.البته باید بگم که مقدار فرکانس رو کم و زیاد کردم ولی جواب نداد :sad:
    لطفاً اگه کسی کار کرده کمکم کنه. :cry2:
    مرسی

    #2
    پاسخ : real time در AVR

    سلام...

    مگه شما از RTC تایمر 2 استفاده نکردین؟

    اگه از اون استفاده کردین که دیگه مقدارش به کیستال داخلی یاخارجی نداره. باید یه کریستال ساعت روی ساعت(32.768) رو روی پایه های TOSC1 , TOSC2 بذاری و مقدار prescale تایمر 2 رو 128 انتخاب کنیم.

    در این صورت تایمر تو هر 1 ثانیه یه بار سر ریز میشه.

    دیدگاه


      #3
      پاسخ : real time در AVR

      نوشته اصلی توسط mohammad_m
      سلام دوستان
      من برنامه ای با Mega16 نوشتم که در اون از RTC درونی میکرو استفاده کردم که این زمان روی 7SEGMENT نمایش داده میشه و در کنار این کارهای دیگه ای رو انجام میده که مورد بحث نیست.
      مشکل اینجاست که میکرو زمان دقیق رو به من نمیده یعنی اینکه تقریباً توی 17 ساعت 20 دقیقه جلو میفته . :eek:
      من از کریستال داخلی میکرو استفاده کردم.البته باید بگم که مقدار فرکانس رو کم و زیاد کردم ولی جواب نداد :sad:
      لطفاً اگه کسی کار کرده کمکم کنه. :cry2:
      مرسی
      1. AVR چیزی به اسم RTC داخلی نداره، منظور شما تایمر دو در وضعیت آسنکرونه که می تونه در ساخت RTC ازش استفاده بشه (RTC داشتن میکرو یعنی اینکه رجیستر Day و Year , ... داشته باشه).
      2. چیزی به اسم کریستال داخلی وجود نداره بلکه اون اسیلاتور RC داخلی است.

      دقیق نبودن برنامه شما هم می تونه دو دلیل داشته باشه: 1. برنامه تون اشکال داره 2. کریستال 32768 هرتز دقیق نیست.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : real time در AVR

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

        دیدگاه


          #5
          پاسخ : real time در AVR

          با تشکر از تمامی دوستان مخصوصاً آقا رضا سپاس یار که این نکات رو به من گوشزد کردند .
          باید بگم من این برنامه رو با LCD کاراکتری نوشتم و کاملاً دقیق بود پس مشکل نباید از کریستال 32.768khz باشه و همینطور نمیتونه از اسیلاتور داخلی میکرو باشه ،مشکل اینجاست که وقتی زمان رو روی 7segment نشون میدم یک ثانیه دقیق رو ندارم.
          باید بگم که کریستال خارجی رو هم امتحان کردم ولی....
          باز هم ممنون از دوستان عزیز

          دیدگاه


            #6
            پاسخ : real time در AVR

            احتمالا مشکل از غیر فعال بودن وقفه ها توی روتین وقفه ایه که سون سگمنت ریفرش میشه ..
            میتونی اول روتین های وقفه بنویسی #asm("sei&quot
            That`s It ...I`m out of here

            دیدگاه


              #7
              پاسخ : real time در AVR

              توی روتین وقفتون نباید برنامه ای که زمان زیادی میگیره رو بذارید مثل delay.
              توی روتین وقفه فقط یکی به ثانیه اضافه کنید.
              منظورم اینه که شاید توی برنامه ای ک واسه LCD نوشتین، نوشتن زمان روی LCD رو توی روتین وقفه داشتین اما حالا مالتی پلکس کردن سون سگمنت هاتون.

              دیدگاه


                #8
                پاسخ : real time در AVR

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

                دیدگاه


                  #9
                  پاسخ : real time در AVR

                  سلام
                  لطفا برنامتون رو پلود کنید

                  دیدگاه

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