1 Reply Latest reply on Oct 20, 2015 12:26 PM by abirjepatil

    would you help me out with using CMSIS about the external interrup on WICED-SDK?

    함찬영

      Hi! all.

       

      I just want to use the external interrupt with CMSIS directly on WICED-SDK-3.1.2, SSBWMN01.

       

      At the first, I did not find the external interrupt handler name.

      Although I can find the external interrupt handler name now, I've encountered the error message.


      build/Hahm_peripherals_Ext_INT1-SSBWMN01-debug/libraries/External_interrupt_Test!!!.a(main_app.o):C:\Users\CYHahm\Documents\WICED\WICED-SDK-3.1.2\Wiced-SDK/apps/Hahm/peripherals/Ext_INT1/main_app.c:102: first defined here

      make.exe[1]: *** [build/Hahm_peripherals_Ext_INT1-SSBWMN01-debug/binary/Hahm_peripherals_Ext_INT1-SSBWMN01-debug.elf] Error 1

      tools/makefiles/wiced_elf.mk:215: recipe for target 'build/Hahm_peripherals_Ext_INT1-SSBWMN01-debug/binary/Hahm_peripherals_Ext_INT1-SSBWMN01-debug.elf' failed

      make: *** [main_app] Error 2

      Makefile:185: recipe for target 'main_app' failed

       

      How can I resolve this error?

      This is a my code ( I omit some code).

       

      #include "wiced.h"

       

      #define LED_T           GPIO_ToggleBits(GPIOB, GPIO_Pin_15) //Test LED Toggle

       

      void init_GPIO( void );

       

      void application_start( void )
      {

          /* Initialize the WICED device */
          wiced_init();

          for(int i = 0 ; i < 3 ; i++)
              WPRINT_APP_INFO( ( "\n" ) );

          WPRINT_APP_INFO( ( "Start the Comm. with ADS1192!\n" ) );

       

          init_GPIO();

       

          RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
          SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource11);

         //External interrrupt source GPIOH.11, The input interrupt signal is periodic about 200 Hz

       

          GPIO_InitTypeDef GPIO_EXTI_Structure;
          GPIO_EXTI_Structure.GPIO_Pin = GPIO_Pin_11;
          GPIO_EXTI_Structure.GPIO_Mode = GPIO_Mode_IN;
          GPIO_EXTI_Structure.GPIO_PuPd = GPIO_PuPd_NOPULL;
          GPIO_EXTI_Structure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(GPIOH, &GPIO_EXTI_Structure);

       

          EXTI_InitTypeDef EXTItypeStructure;
          EXTItypeStructure.EXTI_Line = EXTI_Line11;
          EXTItypeStructure.EXTI_Mode = EXTI_Mode_Interrupt;
          EXTItypeStructure.EXTI_Trigger = EXTI_Trigger_Falling;
          EXTItypeStructure.EXTI_LineCmd = ENABLE;
          EXTI_Init(&EXTItypeStructure);

       

          NVIC_InitTypeDef NVICtypeStructure;
          NVICtypeStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
          NVICtypeStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
          NVICtypeStructure.NVIC_IRQChannelSubPriority = 0x0F;
          NVICtypeStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVICtypeStructure);

       

          NVIC_EnableIRQ(EXTI15_10_IRQn);

       

          RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE);

       

          init_GPIO();

       

          while(1)
          {    }
      }


      /*
      * Handles key events
      */

       

      void EXTI15_10_irq(void)      // error

      {

          LED_OFF;

          if(EXTI_GetITStatus(EXTI_Line11) != RESET)

          {     

              LED_T;

              EXTI_ClearITPendingBit(EXTI_Line11);                    //Clear the interrupt flag

          }

      }

       

      void init_GPIO( void )
      {
          GPIO_InitTypeDef    GPIOInit;

          RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

       

           //TEST LED
          GPIOInit.GPIO_Pin = GPIO_Pin_15;
          GPIOInit.GPIO_Mode = GPIO_Mode_OUT;
          GPIOInit.GPIO_Speed = GPIO_Speed_50MHz;
          GPIOInit.GPIO_OType = GPIO_OType_PP;
          GPIOInit.GPIO_PuPd = GPIO_PuPd_UP;
          GPIO_Init(GPIOB, &GPIOInit);

          LED_OFF;
      }