اطلاعیه

Collapse
No announcement yet.

اندازه گیری دور موتور و فرکانس برق شهر همزمان

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

    اندازه گیری دور موتور و فرکانس برق شهر همزمان

    سلام
    امیدوارم همگی خوب باشید
    من تو این پروِزه می خوام از دو تا پایه input capture و int1 به صورت همزمان استفاده کنم به این صورت که دو تا پالس با فرکانس های مختلف داریم و من می خوام فرکانس های اینها رو اندازه بگیرم.به این صورت که پالسی که به input capture می دیم مثلا 100 بار اندازه گیری بشه و نشون داده بشه سپس یک بار وقفه خارجی فعال بشه و پالس مربوط به اون اندازه گیری بشه و نشون داده بشه!من طریقه محاسباتشو می دونم ولی تو فعال و غیر فعال کردن اینا مشکل دارم
    .من این برنامه رو نوشتم

    // Global enable interrupts
    #asm("sei&quot


    PORTA=0b00000000;
    PORTB=0b00000000;
    //GICR=0x00;
    while (1)
    {
    count = count + 1;
    if
    (count == 1000)
    {
    TIMSK=0x00;
    //GICR=0x80;
    }
    if
    (show_cap==1)
    {
    TIMSK=0x00;
    PORTA.2 = !PORTA.2;
    delay_ms(1);
    show_cap = 0;
    TIMSK=0x24;
    }
    if
    (show_int==1)
    {
    GICR=0x00;
    PORTB.3 = !PORTB.3;
    delay_ms(100) ;
    count = 0;
    show_int = 0;
    TIMSK=0x24;
    }

    };
    }

    // External Interrupt 1 service routine
    interrupt [EXT_INT1] void ext_int1_isr(void)
    {


    if
    (m == 0 )
    {
    m = 1 ;

    }
    else
    if
    ( m == 1 )
    {
    show_int = 1 ;
    m = 0 ;
    }

    }

    // Timer 1 input capture interrupt service routine
    interrupt [TIM1_CAPT] void timer1_capt_isr(void)
    {

    if
    (n == 0 )
    {

    n = 1 ;

    }
    else
    if
    (n == 1)
    {

    show_cap = 1 ;
    n = 0 ;
    }
    }


    تو این برنامه پایه اینتراپتمون حتی اگه چیزی بهش وصل هم نشده باشه پالس می گیره!!!!! و پورتمون رو تاگل می کنه !

    میشه کمک کنید بگید چی کار کنم؟؟؟؟ممنون

    من کلا می خوام پالس رو که به اینپوت کپچر می دم 100 بار اندازه بگیرم و نشون بدم و بعد یک بار پالس اینراپت رو اندازه بگیرم و نشون بدم و همین روند ادامه داشته باشه؟

    پالس input capture در حد 200 هرتز
    پالس int1 در حد 50 هرتز
    گاهی دلم برای چوپان دروغگو خیلی می سوزد.بیچاره 2 بار بیشتر دروغ نگفت انگشت
    نماشد... ولی ما هنوز صادق ترینیم

    #2
    پاسخ : اندازه گیری دور موتور و فرکانس برق شهر همزمان

    چرا اینتراپت خارجی را روی لبه ست نکردید؟ با تغییر رجیستر MCUCR می تونید اینکار رو انجام بدید.
    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

    دیدگاه


      #3
      پاسخ : اندازه گیری دور موتور و فرکانس برق شهر همزمان

      من از رجیستر GICR استفاده کردم برای فعال و غیر فعال کردن اینتراپت
      بیت پر ارزش این رجیستر اگه یک باشه اینتراپت فعاله و اگه صفر باشه اینتراپت غیر فعاله
      من اول برنامه تو CODE WIZARDE اومدم اینتراپتو فعال کردم تنضیماتش رو هم انجام دادم ولی توی برنامه هم نیاز به غیر فعال و فعال کردنش دارم
      یعنی می خوام اول برنامه غیر فعال بشه و بعد از اینکه 100 بار از پایه ICP ورودی گرفت و محاسبه کرد اینتراپت فعال بشه و و به روتین محاسبه فرکانس ورودی اینتراپت بره؟
      گاهی دلم برای چوپان دروغگو خیلی می سوزد.بیچاره 2 بار بیشتر دروغ نگفت انگشت
      نماشد... ولی ما هنوز صادق ترینیم

      دیدگاه


        #4
        پاسخ : اندازه گیری دور موتور و فرکانس برق شهر همزمان

        نوشته اصلی توسط فرگل
        من از رجیستر GICR استفاده کردم برای فعال و غیر فعال کردن اینتراپت
        بیت پر ارزش این رجیستر اگه یک باشه اینتراپت فعاله و اگه صفر باشه اینتراپت غیر فعاله
        من اول برنامه تو CODE WIZARDE اومدم اینتراپتو فعال کردم تنضیماتش رو هم انجام دادم ولی توی برنامه هم نیاز به غیر فعال و فعال کردنش دارم
        یعنی می خوام اول برنامه غیر فعال بشه و بعد از اینکه 100 بار از پایه ICP ورودی گرفت و محاسبه کرد اینتراپت فعال بشه و و به روتین محاسبه فرکانس ورودی اینتراپت بره؟
        اون قسمت تنظیمات را هم اینجا بزارید چون ممکنه مشکل از اون باشه. مثلا اگه اینتراپت روی لبه نباشه پشت سر هم اینتراپت میده
        با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

        دیدگاه

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