اطلاعیه

Collapse
No announcement yet.

مشکل در استفاده از تایمر0 میکرو ATxmega16A4U در مد compare

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

    مشکل در استفاده از تایمر0 میکرو ATxmega16A4U در مد compare

    با سلام خدمت دوستان
    بنده می خواستم تایمر صفر ATxmega16A4Uرو در مد compare استفاده کنم اما وقتی تنظیمات را رو انجام میدم و
    میکرو رو پروگرام می کنم میکرو وقتی به مقدار رجیستر TCC0.CCA میرسه وارد وقفه مقایسه A نمیشه و در هنگام
    اور فلو وارد روتین وقفه( ISR (TCC0_CCA_vect میشه در ضمن وقتی تایمر رو در برای وقفه اور فلو تنظیم می کنیم به درستی کار می کنه از دوستان خواهشم می کنم به کد زیر نگاهی کنند و اگر موردی هست اون رو تصحیح کنند.
    کریستال 16مگا خارجی و رجیستر PMIC.CTRL مقدار دهی شده است.
    کد:
    void tc0_initi()
    {
     
    TCC0.CTRLA = (TCC0.CTRLA & (~TC0_CLKSEL_gm)) | TC_CLKSEL_OFF_gc; 
    
    
      
    
    	TCC0.CTRLB=(TCC0.CTRLB & (~(TC0_CCAEN_bm | TC0_CCBEN_bm | TC0_CCCEN_bm | TC0_CCDEN_bm | TC0_WGMODE_gm))) |
    	TC_WGMODE_NORMAL_gc;
    
    	TCC0.INTCTRLA=(TCC0.INTCTRLA & (~(TC0_ERRINTLVL_gm | TC0_OVFINTLVL_gm))) |
    	TC_ERRINTLVL_OFF_gc | TC_OVFINTLVL_OFF_gc;
    
    	TCC0.INTCTRLB=(TCC0.INTCTRLB & (~(TC0_CCDINTLVL_gm | TC0_CCCINTLVL_gm | TC0_CCBINTLVL_gm | TC0_CCAINTLVL_gm))) |
    	TC_CCDINTLVL_OFF_gc | TC_CCCINTLVL_OFF_gc | TC_CCBINTLVL_OFF_gc | TC_CCAINTLVL_LO_gc;
    
    	
    	TCC0.CNT=0;
    	TCC0.PER=15000;
      TCC0.CCA=10000;
    	TCC0.CCB=5000;
    	
      TCC0.CTRLA=(TCC0.CTRLA & (~TC0_CLKSEL_gm)) | TC_CLKSEL_DIV8_gc;
    }
    باتشکر از لطف دوستان

    #2
    پاسخ : مشکل در استفاده از تایمر0 میکرو ATxmega16A4U در مد compare

    برای استفاده از هر واحد Compare باید در رجیستر CTRLB ابتدا کانال مورد نظر enable شود. در حالی که در نمونه کد شما کانال A که قصد استفاده از آن را دارید غیر فعال است.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      #3
      پاسخ : مشکل در استفاده از تایمر0 میکرو ATxmega16A4U در مد compare

      با تشکر از لطف شما مهندس کی نژاد
      با توجه یه راهنمای جنابعالی برنامه تصحیح شد و بدرستی عمل می کند :smile:

      دیدگاه


        #4
        پاسخ : تایمر

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

        دیدگاه


          #5
          پاسخ : تایمر

          نوشته اصلی توسط aynazz نمایش پست ها
          سلام
          دوستان یه پروژه ای باید بنویسم واسه راه اندازی موتور که با برق شهری کار میکنه و از دستور تایمرهم باید استفاده کنم پروژه اینجوریه ک وقتی کلید روشن میشه موتور روشن شه و وقتی به زمان خاصی رسید دیگه کار نکنه وled سبز روشن شه اگر از اون زمان کمتر شد led قرمز روشن شه با هر بار روشن شدن کلید این روند طی شه .ممنون میشم اگر از دوستان کمکی بکنن این پروژه و باید زود تحویل بدم
          از دوستان کسی نیس جواب بده ؟؟؟؟؟!!!

          دیدگاه

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