اطلاعیه

Collapse
No announcement yet.

مشکل با EINT

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

    مشکل با EINT

    سلام

    من دارم از اینتراپت خارجی استفاده میکنم ولی توی دیباگ برنامه این قسمت گیر میکنه که مربوط به System_LPC17xx هست و کلاک میکرو :

    کد:
    ; Reset Handler
    
    Reset_Handler  PROC
            EXPORT Reset_Handler       [WEAK]
            IMPORT SystemInit
            IMPORT __main
            LDR   R0, =SystemInit
            BLX   R0
            LDR   R0, =__main
            BX   R0
            ENDP
    کد:
    void SystemInit (void)
    {
    #if (CLOCK_SETUP) /* Clock Setup */
    LPC_SC->SCS = SCS_Val;
    if (SCS_Val & (1 << 5)) { /* If Main Oscillator is enabled */
    while ((LPC_SC->SCS & (1<<6)) == 0);/* Wait for Oscillator to be ready */
    }
    LPC_SC->CCLKCFG = CCLKCFG_Val; /* Setup Clock Divider */
    LPC_SC->PCLKSEL0 = PCLKSEL0_Val; /* Peripheral Clock Selection */
    LPC_SC->PCLKSEL1 = PCLKSEL1_Val;
    .
    .
    .
    .
    .
    .
    .
    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

    #2
    پاسخ : مشکل با EINT

    سلام
    منم دقیقا همین مشکل رو دارم
    زمانیکه برنامه کلا وقفه نداره، خیلی راحت و خوب اجرا میشه اما وقتی که وقفه بیاد وسط کلا گیر میکنه :cry2:
    توروخدا یکی کمک کنه

    دیدگاه


      #3
      پاسخ : مشکل با EINT

      سلام با کد زیر اینتراپت رو پیکره بندی کنید ببنید مشکل دارید.
      [code=c]void Int0_init(void)
      {
      LPC_PINCON->PINSEL4 |= (1 << 20);
      LPC_SC->EXTMODE |= (1 << 0);
      LPC_SC->EXTPOLAR = 0;
      NVIC_EnableIRQ(EINT0_IRQn);
      }[/code]
      در نهایت تو روتین سرویس وقفه پرچم اینتراپت رو پاک کنید به این شکل:
      [code=c]__irq void EINT0_IRQHandler (void)
      { LPC_SC->EXTINT |= (1 << 0);
      }[/code]
      [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

      دیدگاه

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