اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام دوستان
    من برنامم رو با AVR Studio چک میکنم
    وقفه تایمر روی compare match تنظیم کردم، ولی وقفه تو زمانهای کم زودتر از اینکه مقدار TCNT به OCR برسه اتفاق می افته
    کسی چیزی به ذهنش میرسه که چرا اینطوری هست؟؟
    زمان بندی ها موقعی که وقفه تو 10 میکروثانیه اتفاق بیفته دقیق هست ولی واسه 6 میکروثانیه این مشکل پیش میاد
    یعنی وقتی پیاده سازی هم انجام بدم همین اتفاق می افته؟ یا مثلا مشکل از AVR Studio هست؟؟
    مرسی از همگی

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

    نوشته اصلی توسط ameen.kh
    سلام دوستان
    من برنامم رو با AVR Studio چک میکنم
    وقفه تایمر روی compare match تنظیم کردم، ولی وقفه تو زمانهای کم زودتر از اینکه مقدار TCNT به OCR برسه اتفاق می افته
    کسی چیزی به ذهنش میرسه که چرا اینطوری هست؟؟
    زمان بندی ها موقعی که وقفه تو 10 میکروثانیه اتفاق بیفته دقیق هست ولی واسه 6 میکروثانیه این مشکل پیش میاد
    یعنی وقتی پیاده سازی هم انجام بدم همین اتفاق می افته؟ یا مثلا مشکل از AVR Studio هست؟؟
    مرسی از همگی
    سلام
    برنامه رو بگذارید
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


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

      نوشته اصلی توسط Saman.Asadi
      سلام
      برنامه رو بگذارید
      برنامه خیلی زیاده
      الان هم خونه هستم
      کلا ممکنه همچین اتفاقی بیفته؟؟

      دیدگاه


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

        نوشته اصلی توسط ameen.kh
        برنامه خیلی زیاده
        الان هم خونه هستم
        کلا ممکنه همچین اتفاقی بیفته؟؟
        فکر نکنم ...
        ولی نیازی نیست که شما همه برنامه رو کپی پست کنید ...
        شما همون قسمتی که مربوط به تایمر میشه رو بگذارید ...
        موفق باشید
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


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

          احتمالل زیاد مشکل از کدهای شماست...
          من قبلا تمام این ها رو تست کردم البته با اتمل استودیو...
          وقفه حتی هنگام برابر بودن TCNT با OCR هم اتفاق نمی افته!...وقتی مقدار TCNT یک واحد از OCR بیشتر شد اونجاست ک فلگ مربوط به مقایسه میره بالا...
          دقیقا مطابق با نص صریح دیتاشیت! :biggrin:
          تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

          www.intelart.ir


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

          دیدگاه


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

            نوشته اصلی توسط punisher.x64
            احتمالل زیاد مشکل از کدهای شماست...
            من قبلا تمام این ها رو تست کردم البته با اتمل استودیو...
            وقفه حتی هنگام برابر بودن TCNT با OCR هم اتفاق نمی افته!...وقتی مقدار TCNT یک واحد از OCR بیشتر شد اونجاست ک فلگ مربوط به مقایسه میره بالا...
            دقیقا مطابق با نص صریح دیتاشیت! :biggrin:
            آره اینی که میگیو من دقیقا تو avr studio هم دیدم
            یعنی اگه مشکل از نرم افزار باشه که بدبخت میشم :angry:
            کد من مشکلی نداره!!! :biggrin:
            من توی while(1) برنامه ای ندارم
            پس خارج از وقفه، تو همون خط گیر میکنه تا زمانی که tcnt به ocr برسه و وارد زیر برنامه وقفه بشه و بعد دوباره برگرده تو while(1) گیر کنه
            این اتفاق واسه زمانهای 10 میکروثانیه به بعد به خوبی می افته
            ولی مثلا اگه بخوام این کار تو 6 میکرو ثانیه انجام بشه
            خیلی زودتر از اینکه tcnt به ocr برسه وقفه انجام میشه!!!

            دیدگاه


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

              سلام دوستان
              عاغا پس از ممارست و تلاش بسیار مشکل حل شد :wow:
              نشستم چشامو کردم تو مانیتور و اون avr studio دیدم اون لحظه که برنامه میخواد از تو وقفه در بیاد بسیار بی دلیل و فقط برای مردم آزاری flag مربوط به ocr تو رجیستر tifr یک میشه! دلیلشو نفهمیدم!!!!!
              ولی تو آخرین خط زیر برنامه وقفه اون لامصب رو 1 کردم و مشکل حل شد! :biggrin:
              حالا حتی میشه زمان های در حد 5میکرئثانیه هم ساخت
              دم همتون گرم واسه جواباتون :agree:

              دیدگاه


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

                نوشته اصلی توسط ameen.kh
                سلام دوستان
                عاغا پس از ممارست و تلاش بسیار مشکل حل شد :wow:
                نشستم چشامو کردم تو مانیتور و اون avr studio دیدم اون لحظه که برنامه میخواد از تو وقفه در بیاد بسیار بی دلیل و فقط برای مردم آزاری flag مربوط به ocr تو رجیستر tifr یک میشه! دلیلشو نفهمیدم!!!!!
                ولی تو آخرین خط زیر برنامه وقفه اون لامصب رو 1 کردم و مشکل حل شد! :biggrin:
                حالا حتی میشه زمان های در حد 5میکرئثانیه هم ساخت
                دم همتون گرم واسه جواباتون :agree:
                تایمرتون رو تو مد CTC گذاشتید ؟؟؟
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


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

                  نوشته اصلی توسط Saman.Asadi
                  تایمرتون رو تو مد CTC گذاشتید ؟؟؟
                  به دم شما گرم :surprised: :biggrin:
                  دیگه اینقدو بلدم :mrgreen: :mrgreen: :mrgreen:

                  دیدگاه


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

                    نوشته اصلی توسط ameen.kh
                    دیدم اون لحظه که برنامه میخواد از تو وقفه در بیاد بسیار بی دلیل و فقط برای مردم آزاری flag مربوط به ocr تو رجیستر tifr یک میشه! دلیلشو نفهمیدم!!!!!
                    ولی تو آخرین خط زیر برنامه وقفه اون لامصب رو 1 کردم و مشکل حل شد! :biggrin:
                    شما مطمئنی !!!؟ چطور ممکنه چنین چیزی !؟

                    من که تاحالا با چنین مشکلی برخورد نکردم ...!
                    بر زنده باد گفتن این مردم خوش گریز

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

                    دیدگاه


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

                      نوشته اصلی توسط وحیـد
                      شما مطمئنی !!!؟ چطور ممکنه چنین چیزی !؟

                      من که تاحالا با چنین مشکلی برخورد نکردم ...!
                      من هم بر نخوردم ...
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


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

                        نوشته اصلی توسط Saman.Asadi
                        من هم بر نخوردم ...
                        آخه از طرفی AVR Stodio رایگان هم هست و همین موضوع ، تردید هر نوع باگ بخاطر مثلاً کرک بودن رو هم از ذهن دور میکنه !

                        من گمان میکنم مشکل از برنامه بوده باشه ... شاید
                        بر زنده باد گفتن این مردم خوش گریز

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

                        دیدگاه


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

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

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

                          مطمئنا مشکل از اینجاست!
                          تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                          www.intelart.ir


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

                          دیدگاه


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

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

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

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

                            حالا مشکل ایشون که وقفه خوردن زودتر از موعد بوده ! ولی توی دیتاشیت میکرو ، دربارهء وقفه نخوردن هم توضیح داده و گفته که اگر مقادیر update شده برای OCR خیلی نزدیک به TCNT انتخاب بشه و پروسهء اجرای دستورات طولانی تر از زمان شمارش تایمر باشه ، ممکنه اون وقفه از دست بره که طبیعی هم هست .
                            بر زنده باد گفتن این مردم خوش گریز

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

                            دیدگاه


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

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

                              حالا مشکل ایشون که وقفه خوردن زودتر از موعد بوده ! ولی توی دیتاشیت میکرو ، دربارهء وقفه نخوردن هم توضیح داده و گفته که اگر مقادیر update شده برای OCR خیلی نزدیک به TCNT انتخاب بشه و پروسهء اجرای دستورات طولانی تر از زمان شمارش تایمر باشه ، ممکنه اون وقفه از دست بره که طبیعی هم هست .
                              اینجور مشکلات فقط و فقط با خوندن دیتاشیت حل میشه...خیلی چیزا هست که تو هیچ کدوم از کتاب های ترجمه شده فارسی نمیبینیم ولی توی دیتاشیت گفته شده و خیلی هم مهمه...
                              مثلا من تا همین چند وقت پیش نمیدونستم که واسه داشتن دقت 10 بیت با ADC باید Prescaler رو جوری تنظیم کرد که فرکانس کاری ADC بین 50 تا 200 کیلو هرتز باشه!!!
                              تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                              www.intelart.ir


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

                              دیدگاه

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