コード例 #1
0
/**
* @brief  This function handles External lines 15 to 4 interrupt request.
* @param  None
* @retval None
*/
void EXTI9_5_IRQHandler(void)
{
  /* EXTI line 7 interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(RADIO_GPIO_3_EXTI_LINE))
  {
    __HAL_GPIO_EXTI_CLEAR_IT(RADIO_GPIO_3_EXTI_LINE);

    HAL_GPIO_EXTI_Callback(RADIO_GPIO_3_EXTI_LINE);

    spirit1_interrupt_callback();
  }
  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_9);

  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_8);
  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_7);
  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_6);
  __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_5);

#ifndef  LPM_ENABLE

  //  if(__HAL_GPIO_EXTI_GET_IT(KEY_BUTTON_EXTI_LINE) != RESET)
  //  {
  //    __HAL_GPIO_EXTI_CLEAR_IT(KEY_BUTTON_EXTI_LINE);
  //
  // Set_KeyStatus(SET);
  //  }
  //
#else /*Low Power mode enabled*/

#if defined(RF_STANDBY)/*if spirit1 is in standby*/

  if(EXTI->PR & KEY_BUTTON_EXTI_LINE)
  {
    HAL_GPIO_EXTI_Callback(KEY_BUTTON_EXTI_LINE);
    /* EXTI line 13 interrupt detected */
    if(HAL_GPIO_ReadPin(KEY_BUTTON_GPIO_PORT, KEY_BUTTON_PIN) == 0x01) //0x00
    {
      HAL_GPIO_EXTI_Callback(KEY_BUTTON_EXTI_LINE);

      PushButtonStatusWakeup = SET;
      PushButtonStatusData = RESET;
      wakeupCounter = LPM_WAKEUP_TIME;
      dataSendCounter = DATA_SEND_TIME;
      dataSendCounter++;
    }
    __HAL_GPIO_EXTI_CLEAR_IT(KEY_BUTTON_EXTI_LINE);
  }
#else /*if spirit1 is not in standby or sleep mode but MCU is in LPM*/

  if(__HAL_GPIO_EXTI_GET_IT(KEY_BUTTON_EXTI_LINE) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(KEY_BUTTON_EXTI_LINE);

    HAL_GPIO_EXTI_Callback(KEY_BUTTON_EXTI_LINE);

    Set_KeyStatus(SET);
  }
#endif
#endif
}
コード例 #2
0
/**
* @brief  This function handles External lines 15 to 4 interrupt request.
* @param  None
* @retval None
*/
void EXTI2_3_IRQHandler(void)
{
  /* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_2) != RESET) 
  { 
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_2);
  }
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_3) != RESET) 
  { 
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_3);
  }  
}
コード例 #3
0
/**
* @brief  This function handles External lines 15 to 4 interrupt request.
* @param  None
* @retval None
*/
void EXTI0_1_IRQHandler(void)
{
  /* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_0) != RESET) 
  { 
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_0);
  }
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_1) != RESET) 
  { 
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_1);
  }  
}
コード例 #4
0
ファイル: Interrupt_Functions.c プロジェクト: javifercep/MuBA
/**
  * @brief  This function handles EXTI1 Handler.
  * @param  None
  * @retval None
  */
void EXTI1_IRQHandler(void)
{
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN1_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN1_PIN);
		if(EXTI_CallBack[0]){ EXTI_CallBack[0](); }
  }
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA8_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA8_PIN);
		if(EXTI_CallBack[A8]){ EXTI_CallBack[A8](); }
	}
}
コード例 #5
0
//void USART2_IRQHandler( void )
void EXTI15_10_IRQHandler( void )
{
  if (__HAL_GPIO_EXTI_GET_IT(NRF24_IRQ_PIN) != RESET) {
    __HAL_GPIO_EXTI_CLEAR_IT(NRF24_IRQ_PIN);
    NRF24_IrqEvent();
  }
}
コード例 #6
0
//void EXTI1_IRQHandler( void ) {}
//void EXTI2_IRQHandler( void ) {}
void EXTI3_IRQHandler( void )
{
    if(__HAL_GPIO_EXTI_GET_IT(GPIO_PIN_3) != RESET) {
//    EXTI3_TriggerEven_CallBack();
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_3);
    }
}
コード例 #7
0
ファイル: Interrupt_Functions.c プロジェクト: javifercep/MuBA
/**
  * @brief  This function handles EXTI4 Handler.
  * @param  None
  * @retval None
  */
void EXTI4_IRQHandler(void)
{	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN16_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN16_PIN);
		if(EXTI_CallBack[16]){ EXTI_CallBack[16](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA9_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA9_PIN);
		if(EXTI_CallBack[A9]){ EXTI_CallBack[A9](); }
	}
}
コード例 #8
0
ファイル: bsp_isr.c プロジェクト: JUMA-IO/STM32_Platform
/*lsm6ds3*/
void EXTI0_IRQHandler(void)
{
  if(__HAL_GPIO_EXTI_GET_IT(MEMS_INT1_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(MEMS_INT1_PIN);
    if(EXTI0_IRQFUNC)
      (*EXTI0_IRQFUNC)();
  }
}
コード例 #9
0
ファイル: bsp_isr.c プロジェクト: JUMA-IO/STM32_Platform
/*lsm303agr*/
void EXTI9_5_IRQHandler(void)
{
  if(__HAL_GPIO_EXTI_GET_IT(MAGNETO_INT1_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(MAGNETO_INT1_PIN);
   //if(EXTI9_5_IRQFUNC)
    //  (EXTI9_5_IRQFUNC) ();
  }
}
コード例 #10
0
ファイル: stm32f1xx_it.c プロジェクト: JalonWong/Mini-IoT
bool USER_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
    /* EXTI line interrupt detected */
    if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
    {
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
        return true;
    }
    return false;
}
コード例 #11
0
/**
 * ext irq handler 
 *  
 * Handles the gpio interrupt attached to a gpio pin. 
 * 
 * @param index 
 */
static void
ext_irq_handler(int index)
{
    uint32_t mask;

    mask = 1 << index;
    if (__HAL_GPIO_EXTI_GET_IT(mask) != RESET) {
        __HAL_GPIO_EXTI_CLEAR_IT(mask);
        gpio_irq_handlers[index].isr(gpio_irq_handlers[index].arg);
    }
}
コード例 #12
0
ファイル: lsm303d.c プロジェクト: fhtthg/my_pix4
void EXTI1_IRQHandler(void)
{
    if(__HAL_GPIO_EXTI_GET_IT(LSM303D_MAG_DRDY_PIN) != RESET)
      {

        LSM303D_MAG_READY(&LSM303D_MAG_report1);
        LSM303D_RD_CNT++;
        __HAL_GPIO_EXTI_CLEAR_IT(LSM303D_MAG_DRDY_PIN);
      }

}
コード例 #13
0
ファイル: lsm303d.c プロジェクト: fhtthg/my_pix4
void EXTI4_IRQHandler(void)
{
    if(__HAL_GPIO_EXTI_GET_IT(LSM303D_ACC_DRDY_PIN) != RESET)
      {

       // LSM303D_ACC_READY(&LSM303D_ACC_report1);

        __HAL_GPIO_EXTI_CLEAR_IT(LSM303D_ACC_DRDY_PIN);
      }

}
コード例 #14
0
ファイル: stm32xx_it.c プロジェクト: AdrainGuo/STM32_Platform
/*lsm6ds3*/
void EXTI0_IRQHandler(void)
{
   if(__HAL_GPIO_EXTI_GET_IT(MEMS_INT1_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(MEMS_INT1_PIN);
    if(EXTI0_IRQFUNC)
      (*EXTI0_IRQFUNC)();
//    imu_sensor_read_data_from_fifo();
//    printf("fifo interrupt \n");
  }
}
コード例 #15
0
ファイル: Interrupt_Functions.c プロジェクト: javifercep/MuBA
/**
  * @brief  This function handles EXTI0 Handler.
  * @param  None
  * @retval None
  */
void EXTI2_IRQHandler(void)
{
		/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN8_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN8_PIN);
		if(EXTI_CallBack[8]){ EXTI_CallBack[8](); }
  }
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN14_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN14_PIN);
		if(EXTI_CallBack[14]){ EXTI_CallBack[14](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA3_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA3_PIN);
		if(EXTI_CallBack[A3]){ EXTI_CallBack[A3](); }
	}
}
コード例 #16
0
ファイル: stm32f1xx_it.c プロジェクト: patlas/ke
void EXTI15_10_IRQHandler(void)
{
	for(uint8_t i=0; i< (sizeof(EXTI_TAB)/sizeof(EXTI_TAB[0])); i++)
	{
		if(__HAL_GPIO_EXTI_GET_IT(EXTI_TAB[i]) != RESET) 
		{ 
			__HAL_GPIO_EXTI_CLEAR_IT(EXTI_TAB[i]);
			
			xQueueSendFromISR( joyPressQueue, &JOY_MAP[i], NULL );
			break;
		}
	}
	
}
コード例 #17
0
void hal_gpio_ext_irq_handler(uint16_t index)
{
    uint32_t mask;

    mask = HAL_GPIO_PIN(index);
    if (__HAL_GPIO_EXTI_GET_IT(mask) != RESET) {
        __HAL_GPIO_EXTI_CLEAR_IT(mask);
      if (hal_gpio_irq[index].isr) {
          ++hal_gpio_irq[index].invoked;
          hal_gpio_irq[index].isr(hal_gpio_irq[index].arg);
      } else {
          ++hal_gpio_irq[index].dropped;
      }
    }
}
コード例 #18
0
ファイル: Interrupt_Functions.c プロジェクト: javifercep/MuBA
/**
  * @brief  This function handles EXTI9_5 Handler.
  * @param  None
  * @retval None
  */
void EXTI9_5_IRQHandler(void)
{
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN3_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN3_PIN);
		if(EXTI_CallBack[3]){ EXTI_CallBack[3](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN5_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN5_PIN);
		if(EXTI_CallBack[5]){ EXTI_CallBack[5](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN15_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN15_PIN);
		if(EXTI_CallBack[15]){ EXTI_CallBack[15](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA0_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA0_PIN);
		if(EXTI_CallBack[A0]){ EXTI_CallBack[A0](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA4_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA4_PIN);
		if(EXTI_CallBack[A4]){ EXTI_CallBack[A4](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA5_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA5_PIN);
		if(EXTI_CallBack[A5]){ EXTI_CallBack[A5](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA6_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA6_PIN);
		if(EXTI_CallBack[A6]){ EXTI_CallBack[A6](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA10_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA10_PIN);
		if(EXTI_CallBack[A10]){ EXTI_CallBack[A10](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA11_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA11_PIN);
		if(EXTI_CallBack[A11]){ EXTI_CallBack[A11](); }
	}
}
コード例 #19
0
ファイル: Interrupt_Functions.c プロジェクト: javifercep/MuBA
/**
  * @brief  This function handles EXTI15_10 Handler.
  * @param  None
  * @retval None
  */
void EXTI15_10_IRQHandler(void)
{
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN2_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN2_PIN);
		if(EXTI_CallBack[2]){ EXTI_CallBack[2](); }
	}

	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN4_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN4_PIN);
		if(EXTI_CallBack[4]){ EXTI_CallBack[4](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN6_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN6_PIN);
		if(EXTI_CallBack[6]){ EXTI_CallBack[6](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN7_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN7_PIN);
		if(EXTI_CallBack[7]){ EXTI_CallBack[7](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN9_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN9_PIN);
		if(EXTI_CallBack[9]){ EXTI_CallBack[9](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN10_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN10_PIN);
		if(EXTI_CallBack[10]){ EXTI_CallBack[10](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN11_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN11_PIN);
		if(EXTI_CallBack[11]){ EXTI_CallBack[11](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN12_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN12_PIN);
		if(EXTI_CallBack[12]){ EXTI_CallBack[12](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PIN13_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PIN13_PIN);
		if(EXTI_CallBack[13]){ EXTI_CallBack[13](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA1_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA1_PIN);
		if(EXTI_CallBack[A1]){ EXTI_CallBack[A1](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA2_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA2_PIN);
		if(EXTI_CallBack[A2]){ EXTI_CallBack[A2](); }
	}
	
	/* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(PINA7_PIN) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(PINA7_PIN);
		if(EXTI_CallBack[A7]){ EXTI_CallBack[A7](); }
	}

}