اطلاعیه

Collapse
No announcement yet.

دلیل وقفه زودتر از Match

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

    #16
    پاسخ : دلیل وقفه زودتر از Match

    نوشته اصلی توسط punisher.x64
    اینجور مشکلات فقط و فقط با خوندن دیتاشیت حل میشه...خیلی چیزا هست که تو هیچ کدوم از کتاب های ترجمه شده فارسی نمیبینیم ولی توی دیتاشیت گفته شده و خیلی هم مهمه...
    مثلا من تا همین چند وقت پیش نمیدونستم که واسه داشتن دقت 10 بیت با ADC باید Prescaler رو جوری تنظیم کرد که فرکانس کاری ADC بین 50 تا 200 کیلو هرتز باشه!!!
    من اینو میدونستم :mrgreen: . البته از توی یه سایت خارجی متوجه شده بودم که طبیعتاً اونا هم رفرنسشون ، دیتاشیت بوده
    بر زنده باد گفتن این مردم خوش گریز

    دل بر مَنه که یک تنه در سنگرت کنند ...

    دیدگاه


      #17
      پاسخ : دلیل وقفه زودتر از Match

      نوشته اصلی توسط punisher.x64
      شما تایمر رو روی مد CTC گذاشتید پس TOP تایمر میشه مقدار OCR درست؟
      خب شما میخواید زمان هایی کوچک مثلا 6 میکرو ثانیه رو بسازید....وقتی وارد وقفه میشیم فلگ مقایسه 0 میشه و تایمر دوباره از 0 شروع میکنه به شمردن...
      حالا شما مطمئنید که پروسه ورود به وقفه و انجام محاسبات داخلش و خروج از وقفه کمتر از 6 میکرو ثانیه طول میکشه؟؟؟؟

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

      مطمئنا مشکل از اینجاست!
      نوشته اصلی توسط وحیـد
      دقیقاًآ‌ من هم فکر میکنم علت مشکل ایشون از همینجا بوده ...

      حالا مشکل ایشون که وقفه خوردن زودتر از موعد بوده ! ولی توی دیتاشیت میکرو ، دربارهء وقفه نخوردن هم توضیح داده و گفته که اگر مقادیر update شده برای OCR خیلی نزدیک به TCNT انتخاب بشه و پروسهء اجرای دستورات طولانی تر از زمان شمارش تایمر باشه ، ممکنه اون وقفه از دست بره که طبیعی هم هست .
      من با نرم افزار که چک کردم دستوراتی که تو زیر برنامه وقفه انجام میشن چون به زبون c هستن حدود 3-4 میکروثانیه طول میکشن!
      ولی حواسم به این مساله بوده واسه همین قبل از اینکه از وقفه بیرون بیام TCNT رو صفر میکردم
      ocr روی 0x35 بود ولی تایمر روی 0xf وارد وقفه میشد
      وقتی چک کردم دیدم اون موقعی که تایمر وارد زیر برنامه وقفه میشه فلگ وقفه compafre match رو که 1 شده بوده، صفر میکنه
      ولی وقتی میخواد از زیر برنامه وقفه بیاد بیرون، دوباره اون فلگ 1 میشد
      وقتی تو آخرین خط وقفه فلگ رو آوردم پایین درست شد و همه زمان بندی هام دیگه دیقیق در میاد
      البته نمیدونم تا چقدر میشه رو این شبیه سازی و دیباگ کردنا حساب کرد
      ممکنه تو عمل همچی به هم بریزه که اون موقع دیگه بدبخت میشم :mrgreen: :mrgreen: :mrgreen:

      دیدگاه


        #18
        پاسخ : دلیل وقفه زودتر از Match

        نوشته اصلی توسط ameen.kh
        من با نرم افزار که چک کردم دستوراتی که تو زیر برنامه وقفه انجام میشن چون به زبون c هستن حدود 3-4 میکروثانیه طول میکشن!
        ولی حواسم به این مساله بوده واسه همین قبل از اینکه از وقفه بیرون بیام TCNT رو صفر میکردم
        ocr روی 0x35 بود ولی تایمر روی 0xf وارد وقفه میشد
        وقتی چک کردم دیدم اون موقعی که تایمر وارد زیر برنامه وقفه میشه فلگ وقفه compafre match رو که 1 شده بوده، صفر میکنه
        ولی وقتی میخواد از زیر برنامه وقفه بیاد بیرون، دوباره اون فلگ 1 میشد
        وقتی تو آخرین خط وقفه فلگ رو آوردم پایین درست شد و همه زمان بندی هام دیگه دیقیق در میاد
        البته نمیدونم تا چقدر میشه رو این شبیه سازی و دیباگ کردنا حساب کرد
        ممکنه تو عمل همچی به هم بریزه که اون موقع دیگه بدبخت میشم :mrgreen: :mrgreen: :mrgreen:
        مطمئن باش تو عمل اینجوری نیست....روی دیباگ جساب باز نکن...
        خودم واسه همکلاسیام لکچر گذاشته بودم...خواستم بهشون نشون بدم که اینتراپت خارجی چجور کار میکنه....هر کار کردم وارد وقفه نشد...آبروم رفت!
        نمیدونم با ویندوزم سازگار نبود یا مشکل از خود اتمل استودیو بود!
        تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

        www.intelart.ir


        ساخت کنترلر دما PID فازی با AVR [آموزشی]

        دیدگاه


          #19
          پاسخ : دلیل وقفه زودتر از Match

          نوشته اصلی توسط punisher.x64
          مطمئن باش تو عمل اینجوری نیست....روی دیباگ جساب باز نکن...
          خودم واسه همکلاسیام لکچر گذاشته بودم...خواستم بهشون نشون بدم که اینتراپت خارجی چجور کار میکنه....هر کار کردم وارد وقفه نشد...آبروم رفت!
          نمیدونم با ویندوزم سازگار نبود یا مشکل از خود اتمل استودیو بود!
          یعنی تا این حد !؟ oo: مگه میشه آخه !!!؟

          این سوتی ها از Atmel بعیده !
          بر زنده باد گفتن این مردم خوش گریز

          دل بر مَنه که یک تنه در سنگرت کنند ...

          دیدگاه


            #20
            پاسخ : دلیل وقفه زودتر از Match

            نوشته اصلی توسط وحیـد
            یعنی تا این حد !؟ oo: مگه میشه آخه !!!؟

            این سوتی ها از Atmel بعیده !
            نمیدونم...شایدم مشکل از ما بوده..شاید باید چیزای دیگه ای رو هم در نظر میگرفتیم...یا شاید هم مشکل از ویندوزمه...من خیلی بهش مشکوکم!این ویندوز 8.1 64بیتی پدر منو در آورده... :angry:
            با پروتئوس هم خیلی مشکل داره....حالا نمیدونم مشکل رو بزارم ب حساب کرک پروتئوس یا ....
            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

            www.intelart.ir


            ساخت کنترلر دما PID فازی با AVR [آموزشی]

            دیدگاه


              #21
              پاسخ : دلیل وقفه زودتر از Match

              نوشته اصلی توسط punisher.x64
              نمیدونم...شایدم مشکل از ما بوده..شاید باید چیزای دیگه ای رو هم در نظر میگرفتیم...یا شاید هم مشکل از ویندوزمه...من خیلی بهش مشکوکم!این ویندوز 8.1 64بیتی پدر منو در آورده... :angry:
              با پروتئوس هم خیلی مشکل داره....حالا نمیدونم مشکل رو بزارم ب حساب کرک پروتئوس یا ....
              والا من که تا حالا با پروتئوس هیچ مشکلی نداشتم ....
              با این وجود که چند ساله با ورژنهای مختلف کار میکنم
              در ضمن
              ویندوز من هم 8 64 بیتی ست ...
              اگه اشتباه نکنم اولین ورژنی که کار کردم 6.5 بود ...
              خیلی از پروژه ها بوده که اصلا فکرش رو هم نمیکردم که اشکال از سمت خودم بوده ...
              ولی واقعا" اشکال از خودم بود ...
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #22
                پاسخ : دلیل وقفه زودتر از Match

                نوشته اصلی توسط punisher.x64
                نمیدونم...شایدم مشکل از ما بوده..شاید باید چیزای دیگه ای رو هم در نظر میگرفتیم...یا شاید هم مشکل از ویندوزمه...من خیلی بهش مشکوکم!این ویندوز 8.1 64بیتی پدر منو در آورده... :angry:
                با پروتئوس هم خیلی مشکل داره....حالا نمیدونم مشکل رو بزارم ب حساب کرک پروتئوس یا ....
                بعید میدونم از ویندوز یا ورژن پروتئوس بوده باشه . چون منم دارم از ویندوز 8 64 بیتی استفاده میکنم و هرگز باهاش مشکلی نداشتم ... البته تا این لحظه :agree:
                نوشته اصلی توسط Saman.Asadi
                والا من که تا حالا با پروتئوس هیچ مشکلی نداشتم ....
                با این وجود که چند ساله با ورژنهای مختلف کار میکنم
                در ضمن
                ویندوز من هم 8 64 بیتی ست ...
                اگه اشتباه نکنم اولین ورژنی که کار کردم 6.5 بود ...
                خیلی از پروژه ها بوده که اصلا فکرش رو هم نمیکردم که اشکال از سمت خودم بوده ...
                ولی واقعا" اشکال از خودم بود ...
                شخصاً تأیید میکنم ... احتمال اشکال در برنامهء نوشته شده توسط خودمون از سایر احتمالات قویتره .

                ولی این موضوع باعث شد کمی بیشتر راجع به AVR Stodio تأمل و تعمق به خرج بدم :-w
                بر زنده باد گفتن این مردم خوش گریز

                دل بر مَنه که یک تنه در سنگرت کنند ...

                دیدگاه


                  #23
                  پاسخ : دلیل وقفه زودتر از Match

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

                  www.intelart.ir


                  ساخت کنترلر دما PID فازی با AVR [آموزشی]

                  دیدگاه

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