اطلاعیه

Collapse
No announcement yet.

مشکل با تایمر 2 و0 به طور همزمان

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

    مشکل با تایمر 2 و0 به طور همزمان

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

    من به مشکل عجیبی برخوردم. زمانی که وقفه ی تایمر دو رو پیکر بندی میکنم مثلا هر 130us وقفه به طور صحیح اتفاق می افته اما زمانی که وقفه تایمر 0 رو روی یه زمان دیگه تنظیم میکنم مثلا هر 8us دیگه وقفه ی تایمر دو رخ نمیده ولی تایمر 0 انجام میشه بعد دوباره اگه تایمر 0 غیر فعال شه تایمر دو کار میکنه اصلا انگار این دو تا تایمر باهم اگه فعال شن مشکل دارن روی mega8-16-32 هم تست کردم همین جواب رو میده. :angry:

    دوستان لطفا کمک کنید باتشکر.
    در زندگیت به کسی اعتــــماد کن که به او ایمــــان داری نه احســاس . . .

    چه بسیار انسان ها دیدم تنشان لباس نبود؛و چه بسیار لباس ها دیدم که انسانی درونش نبود ...!

    #2
    پاسخ : مشکل با تایمر 2 و0 به طور همزمان

    برنامه ات رو بذار
    ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

    امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : مشکل با تایمر 2 و0 به طور همزمان

      کد:
      #include <mega8.h>
      
      // Timer 0 overflow interrupt service routine
      interrupt [TIM0_OVF] void timer0_ovf_isr(void){
      
        PORTD.0=~PIND.0;
      
      }
      
      // Timer2 overflow interrupt service routine
      interrupt [TIM2_OVF] void timer2_ovf_isr(void){
      
        PORTB.0=~PINB.0;
      
      }
      
      void main(void){
      
        PORTD=0x00;
        DDRD=0x01;
      
        PORTB=0x00;
        DDRB=0x01;
      
        // Timer/Counter 0 initialization
        // Clock source: System Clock
        // Clock value: 125.000 kHz
        TCCR0=0x03;
        TCNT0=0x00;
      
      
        // Timer/Counter 2 initialization
        // Clock source: System Clock
        // Clock value: 7.813 kHz
        // Mode: Normal top=0xFF
        // OC2 output: Disconnected
        ASSR=0x00;
        TCCR2=0x07;
        TCNT2=0x00;
        OCR2=0x00;
      
      
        // Timer(s)/Counter(s) Interrupt(s) initialization
        TIMSK=0x41;
      
        #asm("sei")
      
        while (1){
        }
      }
      اللان اگه وقفه ی 0 غیر فعال شه تایمر دو کار میکنه و وقفه میده.
      با تشکر
      در زندگیت به کسی اعتــــماد کن که به او ایمــــان داری نه احســاس . . .

      چه بسیار انسان ها دیدم تنشان لباس نبود؛و چه بسیار لباس ها دیدم که انسانی درونش نبود ...!

      دیدگاه


        #4
        پاسخ : مشکل با تایمر 2 و0 به طور همزمان

        اول روال رسیدگی به وقفه این کد رو بذار
        کد:
        #asm("cli")
        آخرش هم بذار
        کد:
        #asm("sei")
        ببین درست میشه؟؟؟برای هر دو انجام بده
        ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

        امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

        دیدگاه


          #5
          پاسخ : مشکل با تایمر 2 و0 به طور همزمان

          از جوابتون ممنونم نکته ای که گفتید رو تست می کنم ونتیجه رو بهتون میگم. :smile:
          در زندگیت به کسی اعتــــماد کن که به او ایمــــان داری نه احســاس . . .

          چه بسیار انسان ها دیدم تنشان لباس نبود؛و چه بسیار لباس ها دیدم که انسانی درونش نبود ...!

          دیدگاه


            #6
            پاسخ : مشکل با تایمر 2 و0 به طور همزمان

            دوستان سلام

            بازم جواب نمیده هرچی دیتا شیت رو هم نگاه می کنم جایی رو اشتباه نکردم ولی این دو تا تایمر باهم کار نمیکنند آقا من کارم بدجوری
            گیر کرده لطفا کمک کنید این مشکل رو حل کنم. :angry:

            باتشکر
            در زندگیت به کسی اعتــــماد کن که به او ایمــــان داری نه احســاس . . .

            چه بسیار انسان ها دیدم تنشان لباس نبود؛و چه بسیار لباس ها دیدم که انسانی درونش نبود ...!

            دیدگاه


              #7
              پاسخ : مشکل با تایمر 2 و0 به طور همزمان

              این برنامه رو اجرا کن. ببین مشکل موردت نظرت رو داره یا نه:
              کد:
              #include <mega8.h>
              
              // Timer 0 overflow interrupt service routine
              interrupt [TIM0_OVF] void timer0_ovf_isr(void)
              {
              #asm("cli")
              PORTB.0=~PORTB.0;
              #asm("sei")
              
              }
              
              // Timer 2 overflow interrupt service routine
              interrupt [TIM2_OVF] void timer2_ovf_isr(void)
              {
              #asm("cli")
              PORTD.0=~PORTD.0;
              #asm("sei")
              
              }
              
              
              void main(void)
              {
              
              PORTB=0x00;
              DDRB=0x01;
              
              PORTD=0x00;
              DDRD=0x01;
              
              // Timer/Counter 0 initialization
              // Clock source: System Clock
              // Clock value: 125.000 kHz
              TCCR0=0x03;
              TCNT0=0x00;
              
              // Timer/Counter 2 initialization
              // Clock source: System Clock
              // Clock value: 31.250 kHz
              // Mode: Normal top=FFh
              // OC2 output: Disconnected
              ASSR=0x00;
              TCCR2=0b01001100;
              TCNT2=0x00;
              OCR2=0x00;
              
              // Timer(s)/Counter(s) Interrupt(s) initialization
              TIMSK=0x41;
              
              // Global enable interrupts
              #asm("sei")
              
              while (1)
                 {
              
                 };
              }
              ... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآ‌ها، خاطره همتآ‌هاى بلند را از یادها محو کرده است. (نهجآ‌البلاغه، خطبه211)

              امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)

              دیدگاه

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