/** * @brief This function handles External lines 15 to 10 interrupt request. * @param None * @retval None */ void EXTI15_10_IRQHandler(void) { /* Checks whether the IOE EXTI line is asserted or not */ if(EXTI_GetITStatus(IOE_IT_EXTI_LINE) != RESET) { #ifdef IOE_INTERRUPT_MODE /* Check if the interrupt source is the Touch Screen */ if (IOE_GetGITStatus(IOE_1_ADDR, IOE_TS_IT) & IOE_TS_IT) { static TS_STATE* TS_State; /* Update the structure with the current position */ TS_State = IOE_TS_GetState(); if ((TS_State->TouchDetected) && (TS_State->Y < 220) && (TS_State->Y > 180)) { if ((TS_State->X > 10) && (TS_State->X < 70)) { LCD_DisplayStringLine(Line6, " LD4 "); STM_EVAL_LEDOn(LED4); } else if ((TS_State->X > 90) && (TS_State->X < 150)) { LCD_DisplayStringLine(Line6, " LD3 "); STM_EVAL_LEDOn(LED3); } else if ((TS_State->X > 170) && (TS_State->X < 230)) { LCD_DisplayStringLine(Line6, " LD2 "); STM_EVAL_LEDOn(LED2); } else if ((TS_State->X > 250) && (TS_State->X < 310)) { LCD_DisplayStringLine(Line6, " LD1 "); STM_EVAL_LEDOn(LED1); } } else { STM_EVAL_LEDOff(LED1); STM_EVAL_LEDOff(LED2); STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED4); } /* Clear the interrupt pending bits */ IOE_ClearGITPending(IOE_1_ADDR, IOE_TS_IT); } #ifdef USE_STM3210C_EVAL else if (IOE_GetGITStatus(IOE_2_ADDR, IOE_GIT_GPIO)) { static JOY_State_TypeDef JoyState = JOY_NONE; /* Get the Joystick State */ JoyState = IOE_JoyStickGetState(); switch (JoyState) { case JOY_NONE: LCD_DisplayStringLine(Line5, "JOY: IT ---- "); break; case JOY_UP: LCD_DisplayStringLine(Line5, "JOY: IT UP "); break; case JOY_DOWN: LCD_DisplayStringLine(Line5, "JOY: IT DOWN "); break; case JOY_LEFT: LCD_DisplayStringLine(Line5, "JOY: IT LEFT "); break; case JOY_RIGHT: LCD_DisplayStringLine(Line5, "JOY: IT RIGHT "); break; case JOY_CENTER: LCD_DisplayStringLine(Line5, "JOY: IT CENTER "); break; default: LCD_DisplayStringLine(Line5, "JOY: IT ERROR "); break; } /* Clear the interrupt pending bits */ IOE_ClearGITPending(IOE_2_ADDR, IOE_GIT_GPIO); IOE_ClearIOITPending(IOE_2_ADDR, IOE_JOY_IT); } /* CLear all pending interrupt */ IOE_ClearGITPending(IOE_2_ADDR, ALL_IT); IOE_ClearIOITPending(IOE_2_ADDR, IOE_JOY_IT); #endif /* USE_STM3210C_EVAL */ /* CLear all pending interrupt */ IOE_ClearGITPending(IOE_1_ADDR, ALL_IT); #endif /* IOE_INTERRUPT_MODE */ EXTI_ClearITPendingBit(IOE_IT_EXTI_LINE); } }
void EXTI0_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line0) != RESET) { EXTI_ClearITPendingBit(EXTI_Line0); accelerometer_read_raw(); } }
// ============================= Interrupts ==================================== void EXTI4_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line4) != RESET) { EXTI_ClearITPendingBit(EXTI_Line4); // Clear the EXTI line pending bit CC.IRQHandler(); } }
/** * @brief This function handles External lines 15 to 10 interrupt request. * @param None * @retval None */ void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line10) != RESET) { } }
void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line11) != RESET){ EXTI_ClearITPendingBit(EXTI_Line11); if(LIGHT_SENTER != 0){ return; } if(done_flag == 0){ return; } switch(running_state){ case STATE_START: case STATE1: running_state = STATE2; pocess_state = running_state; break; case STATE2: running_state = STATE3; pocess_state = running_state; break; case STATE3: running_state = STATE4; pocess_state = running_state; break; case STATE4: running_state = STATE5; pocess_state = running_state; break; case STATE5: running_state = STATE6; pocess_state = running_state; break; case STATE6: running_state = STATE7; pocess_state = running_state; break; case STATE7: running_state = STATE8; pocess_state = running_state; break; case STATE8: running_state = STATE9; pocess_state = running_state; break; case STATE9: running_state = STATE10; pocess_state = running_state; break; case STATE10: running_state = STATE11; pocess_state = running_state; break; case STATE11: running_state = STATE12; pocess_state = running_state; break; case STATE12: running_state = STATE13; pocess_state = running_state; break; case STATE13: running_state = STATE1; pocess_state = running_state; break; } done_flag = 0; } }
void M2S_GPIO_3_EXTI_IRQ_HANDLER(void) #endif { /* Check the flag status of EXTI line */ if(EXTI_GetITStatus(M2S_GPIO_3_EXTI_LINE)){ /* Get the IRQ status */ SpiritIrqGetStatus(&xIrqStatus); /* Check the SPIRIT RX_DATA_DISC IRQ flag */ if(xIrqStatus.IRQ_RX_DATA_DISC) { SpiritCmdStrobeRx() SdkEvalLedToggle(LED1); } /* Check the SPIRIT TX_DATA_SENT IRQ flag for the acknoledgement */ if(xIrqStatus.IRQ_TX_DATA_SENT) { // SdkEvalLedToggle(LED1); #ifdef PIGGYBACKING SpiritSpiWriteLinearFifo(20, vectcTxBuff); printf("Loaded piggybacking data: ["); for(uint8_t i=0 ; i<20 ; i++) printf("%d ", vectcTxBuff[i]); printf("]\n\r"); #endif SpiritCmdStrobeRx(); } /* Check the SPIRIT RX_DATA_READY IRQ flag */ if(xIrqStatus.IRQ_RX_DATA_READY) { /* Get the RX FIFO size */ cRxData=SpiritLinearFifoReadNumElementsRxFifo(); /* Read the RX FIFO */ SpiritSpiReadLinearFifo(cRxData, vectcRxBuff); /* Flush the RX FIFO */ SpiritCmdStrobeFlushRxFifo(); /* A simple way to control if the received data sequence is correct (in this case LED2 will toggle) */ { SpiritBool correct=S_TRUE; for(uint8_t i=0 ; i<cRxData ; i++) if(vectcRxBuff[i] != i+1) correct=S_FALSE; if(correct) SdkEvalLedToggle(LED2); } #ifdef USE_VCOM /* print the received data */ printf("B data received: ["); for(uint8_t i=0 ; i<cRxData ; i++) printf("%d ", vectcRxBuff[i]); printf("]\r\n"); #endif } /* Clear the EXTI line flag */ EXTI_ClearITPendingBit(M2S_GPIO_3_EXTI_LINE); } }
void EXTI15_10_IRQHandler() { uint32 bit; OSIntEnter(); if(EXTI_GetITStatus(EXTI_Line10) == SET) { if(gExtiTrigerFlag[10] == RISE_EDGE) { gExtiTrigerFlag[10] = FALLING_EDGE; EXTI->RTSR &= (uint32)~(1 << 10); EXTI->FTSR |= (uint32)(1 << 10); ExtiISR(10,RISE_EDGE); } else { gExtiTrigerFlag[10] = RISE_EDGE; EXTI->RTSR |= (uint32)(1 << 10); EXTI->FTSR &= (uint32)~(1 << 10); ExtiISR(10,FALLING_EDGE); } EXTI_ClearITPendingBit(EXTI_Line10); } if(EXTI_GetITStatus(EXTI_Line11) == SET) { EXTI_ClearITPendingBit(EXTI_Line11); } if(EXTI_GetITStatus(EXTI_Line12) == SET) { EXTI_ClearITPendingBit(EXTI_Line12); } if(EXTI_GetITStatus(EXTI_Line13) == SET) { EXTI_MaskIRQ(13); delayMs(20); if(gExtiTrigerFlag[13] == RISE_EDGE) { gExtiTrigerFlag[13] = FALLING_EDGE; EXTI->RTSR &= (uint32)~(1 << 13); EXTI->FTSR |= (uint32)(1 << 13); ExtiISR(13,RISE_EDGE); } else { gExtiTrigerFlag[13] = RISE_EDGE; EXTI->RTSR |= (uint32)(1 << 13); EXTI->FTSR &= (uint32)~(1 << 13); ExtiISR(13,FALLING_EDGE); } EXTI_ClearITPendingBit(EXTI_Line13); EXTI_UnMaskIRQ(13); } if(EXTI_GetITStatus(EXTI_Line14) == SET) { EXTI_ClearITPendingBit(EXTI_Line14); } if(EXTI_GetITStatus(EXTI_Line15) == SET) { EXTI_ClearITPendingBit(EXTI_Line15); } OSIntExit(); }
void EXTI15_10_IRQHandler() { if (EXTI_GetITStatus(EXTI_Line11) == SET) { if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11)) { pulseStart[RC_AUX2] = micros(); } else { input[RC_AUX2] = micros() - pulseStart[RC_AUX2]; //printf2("Aux2 %i\n", input[RC_AUX2]); } EXTI_ClearITPendingBit(EXTI_Line11); } if (EXTI_GetITStatus(EXTI_Line12) == SET) { if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12)) { pulseStart[RC_YAW] = micros(); } else { input[RC_YAW] = micros() - pulseStart[RC_YAW]; //printf2("Yaw %i\n", input[RC_YAW]); } EXTI_ClearITPendingBit(EXTI_Line12); } if (EXTI_GetITStatus(EXTI_Line13) == SET) { if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13)) { pulseStart[RC_THROTTLE] = micros(); } else { input[RC_THROTTLE] = micros() - pulseStart[RC_THROTTLE]; //printf2("Throttle %i\n", input[RC_THROTTLE]); } EXTI_ClearITPendingBit(EXTI_Line13); } if (EXTI_GetITStatus(EXTI_Line14) == SET) { if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14)) { pulseStart[RC_PITCH] = micros(); } else { input[RC_PITCH] = micros() - pulseStart[RC_PITCH]; //printf2("Pitch %i\n", input[RC_PITCH]); } EXTI_ClearITPendingBit(EXTI_Line14); } if (EXTI_GetITStatus(EXTI_Line15) == SET) { if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15)) { pulseStart[RC_ROLL] = micros(); } else { input[RC_ROLL] = micros() - pulseStart[RC_ROLL]; //printf2("Roll %i\n", input[RC_ROLL]); } EXTI_ClearITPendingBit(EXTI_Line15); } }
/** * @brief This function handles External lines 9 to 5 interrupt request. * @param None * @retval None */ void EXTI9_5_IRQHandler(void) { if(EXTI_GetITStatus(IOE16_IT_EXTI_LINE) != RESET) { #ifdef IOE_INTERRUPT_MODE __IO uint16_t tmpsr = 0; static JOY_State_TypeDef JoyState = JOY_NONE; static TS_STATE* TS_State; /* Get the interrupt status register */ tmpsr = IOE16_GetITStatus(); /* Check Touch screen interrupt event occurred */ if((tmpsr & IOE16_TS_IT) != 0) { /* Update the structure with the current position */ TS_State = IOE_TS_GetState(); if ((TS_State->TouchDetected) && (TS_State->Y < 92) && (TS_State->Y > 52)) { if ((TS_State->X > 60) && (TS_State->X < 120)) { LCD_SetTextColor(LCD_COLOR_GREEN); LCD_DisplayStringLine(LCD_LINE_10, (uint8_t *)" LED1 "); STM_EVAL_LEDOn(LED1); } else if ((TS_State->X > 140) && (TS_State->X < 200)) { LCD_SetTextColor(LCD_COLOR_YELLOW); LCD_DisplayStringLine(LCD_LINE_10, (uint8_t *)" LED2 "); STM_EVAL_LEDOn(LED2); } else if ((TS_State->X > 220) && (TS_State->X < 280)) { LCD_SetTextColor(LCD_COLOR_RED); LCD_DisplayStringLine(LCD_LINE_10, (uint8_t *)" LED3 "); STM_EVAL_LEDOn(LED3); } else if ((TS_State->X > 300) && (TS_State->X < 360)) { LCD_SetTextColor(LCD_COLOR_BLUE); LCD_DisplayStringLine(LCD_LINE_10, (uint8_t *)" LED4"); STM_EVAL_LEDOn(LED4); } } else { STM_EVAL_LEDOff(LED1); STM_EVAL_LEDOff(LED2); STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED4); } /* Clear the interrupt pending bits */ IOE_ClearGITPending(IOE16_TS_IT); } /* Check joystick interrupt event occurred */ if((tmpsr & IOE16_JOY_IT) != 0 ) { /* Get the joystick State */ JoyState = IOE16_JoyStickGetState(); /* Set the LCD Text Color */ LCD_SetTextColor(Blue); switch (JoyState) { case JOY_NONE: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: ---- "); break; case JOY_UP: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: UP "); break; case JOY_DOWN: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: DOWN "); break; case JOY_LEFT: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: LEFT "); break; case JOY_RIGHT: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: RIGHT "); break; case JOY_CENTER: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: CENTER "); break; default: LCD_DisplayStringLine(LCD_LINE_5, (uint8_t *)" JOY: ERROR "); break; } } #endif /* IOE_INTERRUPT_MODE */ /* Clear all pending bits */ EXTI_ClearITPendingBit(IOE16_IT_EXTI_LINE); IOE_ClearGITPending(ALL_GIT); IOE16_GetITStatus(); } }
static void _gpio_check_exti(gpio_pin pin) { if(EXTI_GetITStatus(io_exti_lines[pin]) != RESET) { EXTI_ClearITPendingBit(io_exti_lines[pin]); if (_gpio.ifns[pin]) _gpio.ifns[pin](pin); } }
/** * @brief This function handles External lines 15 to 10 interrupt request. * @param None * @retval None */ void EXTI15_10_IRQHandler(void) { #ifdef USE_STM32100E_EVAL if(EXTI_GetITStatus(RIGHT_BUTTON_EXTI_LINE) != RESET) { if (ReadKey == 1) { PressedKey = RIGHT; } else { if (GetMutex == 1) { ShowMutex = 0; } else { ReqOperation = SHOW_TEMPERATURE_OP ; } } /* Clear EXTI interrupts pending bits */ EXTI_ClearITPendingBit(RIGHT_BUTTON_EXTI_LINE); } if(EXTI_GetITStatus(LEFT_BUTTON_EXTI_LINE) != RESET) { if (ReadKey == 1) { PressedKey = LEFT; } else { if (GetMutex == 1) { ShowMutex = 0; } else { ReqOperation = SHOW_TIME_OP; } } /* Clear EXTI interrupts pending bits */ EXTI_ClearITPendingBit(LEFT_BUTTON_EXTI_LINE); } if(EXTI_GetITStatus(UP_BUTTON_EXTI_LINE) != RESET) { if (ReadKey == 1) { PressedKey = UP; } else { if (GetMutex == 0) { ReqOperation = GET_REPORT_OP; } } /* Clear EXTI interrupts pending bits */ EXTI_ClearITPendingBit(UP_BUTTON_EXTI_LINE); } if(EXTI_GetITStatus(DOWN_BUTTON_EXTI_LINE) != RESET) { if (ReadKey == 1) { PressedKey = DOWN; } else { if (GetMutex == 0) { ReqOperation = ERASE_EEPROM_OP; } } /* Clear EXTI interrupts pending bits */ EXTI_ClearITPendingBit(DOWN_BUTTON_EXTI_LINE); } #endif /* USE_STM32100E_EVAL */ if(EXTI_GetITStatus(IOE_IT_EXTI_LINE) != RESET) { #ifdef USE_STM3210C_EVAL static JOY_State_TypeDef JoyState = JOY_NONE; #endif /* USE_STM3210C_EVAL */ static TS_STATE* TS_State; /* Check if the interrupt source is the Touch Screen */ if (IOE_GetGITStatus(IOE_1_ADDR, IOE_TS_IT) & IOE_TS_IT) { /* Update the structure with the current position */ TS_State = IOE_TS_GetState(); if ((TS_State->TouchDetected) && (TS_State->Y < 230) && (TS_State->Y > 200)) { if ((TS_State->X > 10) && (TS_State->X < 70)) { LCD_DisplayStringLine(Line7, (uint8_t*)" TS1 "); } else if ((TS_State->X > 90) && (TS_State->X < 150)) { LCD_DisplayStringLine(Line7, (uint8_t*)" TS2 "); } else if ((TS_State->X > 170) && (TS_State->X < 230)) { LCD_DisplayStringLine(Line7, (uint8_t*)" TS3 "); } else if ((TS_State->X > 250) && (TS_State->X < 310)) { LCD_DisplayStringLine(Line7, (uint8_t*)" TS4 "); } } else { STM_EVAL_LEDOff(LED1); STM_EVAL_LEDOff(LED2); STM_EVAL_LEDOff(LED3); STM_EVAL_LEDOff(LED4); } /* Clear the interrupt pending bits */ IOE_ClearGITPending(IOE_1_ADDR, IOE_TS_IT); } #ifdef USE_STM3210C_EVAL else if (IOE_GetGITStatus(IOE_2_ADDR, IOE_GIT_GPIO)) { /* Get the Joystick State */ JoyState = IOE_JoyStickGetState(); switch (JoyState) { case JOY_NONE: break; case JOY_UP: if (ReadKey == 1) { PressedKey = UP; } else { if (GetMutex == 0) { ReqOperation = GET_REPORT_OP; } } break; case JOY_DOWN: if (ReadKey == 1) { PressedKey = DOWN; } else { if (GetMutex == 0) { ReqOperation = ERASE_EEPROM_OP; } } break; case JOY_RIGHT : if (ReadKey == 1) { PressedKey = RIGHT; } else { if (GetMutex == 1) { ShowMutex = 0; } else { ReqOperation = SHOW_TEMPERATURE_OP ; } } break; case JOY_LEFT: if (ReadKey == 1) { PressedKey = LEFT; } else { if (GetMutex == 1) { ShowMutex = 0; } else { ReqOperation = SHOW_TIME_OP; } } break; case JOY_CENTER: if (ReadKey == 1) { PressedKey = SEL; } else { if (GetMutex == 1) { NextRep = 1; ExitMutex = 1; } } break; default: LCD_DisplayStringLine(Line9, (uint8_t*)" JOY ERROR "); break; } /* Clear the interrupt pending bits */ IOE_ClearGITPending(IOE_2_ADDR, IOE_GIT_GPIO); IOE_ClearIOITPending(IOE_2_ADDR, IOE_JOY_IT); } #endif /* USE_STM3210C_EVAL */ else { /* Clear the interrupt pending bits */ #ifdef USE_STM3210C_EVAL IOE_ClearGITPending(IOE_1_ADDR, ALL_IT); IOE_ClearGITPending(IOE_2_ADDR, ALL_IT); #else IOE_ClearGITPending(IOE_1_ADDR, ALL_IT); #endif /* USE_STM3210C_EVAL */ } } /* Clear EXTI interrupts pending bits */ EXTI_ClearITPendingBit(IOE_IT_EXTI_LINE); }
void EXTI9_5_IRQHandler(){ if (EXTI_GetITStatus(EXTI_Line6) != RESET) { EXTI_ClearITPendingBit(EXTI_Line6); osSignalSet(tid_keyboard, 0x08); } }
void M2S_GPIO_3_EXTI_IRQ_HANDLER(void) #endif { /* Check the flag status of EXTI line */ if(EXTI_GetITStatus(M2S_GPIO_3_EXTI_LINE)){ /* Get the IRQ status */ SpiritIrqGetStatus(&xIrqStatus); /* Check the SPIRIT RX_DATA_DISC IRQ flag */ if(xIrqStatus.IRQ_RX_DATA_DISC) { /* toggle LED1 */ SdkEvalLedToggle(LED1); /* RX command - to ensure the device will be ready for the next reception */ SpiritCmdStrobeRx(); } /* Check the SPIRIT RX_DATA_READY IRQ flag */ if(xIrqStatus.IRQ_RX_DATA_READY) { /* Get the RX FIFO size */ cRxData=SpiritLinearFifoReadNumElementsRxFifo(); /* Read the RX FIFO */ SpiritSpiReadLinearFifo(cRxData, vectcRxBuff); /* Flush the RX FIFO */ SpiritCmdStrobeFlushRxFifo(); /* A simple way to check if the received data sequence is correct (in this case LED5 will toggle) */ { SpiritBool xCorrect=S_TRUE; for(uint8_t i=0 ; i<cRxData ; i++) if(vectcRxBuff[i] != i+1) xCorrect=S_FALSE; if(xCorrect) { /* toggle LED2 */ SdkEvalLedToggle(LED2); //#ifdef USE_VCOM // printf("DATA CORRECT\r\n"); //#endif } } /* RX command - to ensure the device will be ready for the next reception */ SpiritCmdStrobeRx(); //#ifdef USE_VCOM // /* print the received data */ // printf("B data received: ["); // for(uint8_t i=0 ; i<cRxData ; i++) // printf("%d ", vectcRxBuff[i]); // printf("]\r\n"); //#endif } /* Clear the EXTI line flag */ EXTI_ClearITPendingBit(M2S_GPIO_3_EXTI_LINE); } }
/** * @brief This function handles EXTI 15-10 interrupt request. * @param None * @retval None */ void EXTI0_IRQHandler(){ if(EXTI_GetITStatus(EXTI_Line0)!=RESET){ EXTI_ClearITPendingBit(EXTI_Line0); } }
void EXTI15_10_IRQHandler(void) //---EXTI15_10 IRQ--// { if(EXTI_GetITStatus(EXTI_Line10)) //--EXTI10--// { EXTI_ClearITPendingBit(EXTI_Line10); #ifdef USE_EXTI10 EXTI10_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI10 pUltExt10->IRQ(); #endif #ifdef USE_CAPTURE_EXIT10 pICPExt10->IRQ(); #endif } if(EXTI_GetITStatus(EXTI_Line11)) //--EXTI11--// { EXTI_ClearITPendingBit(EXTI_Line11); #ifdef USE_EXTI11 EXTI11_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI11 pUltExt11->IRQ(); #endif #ifdef USE_CAPTURE_EXIT11 pICPExt11->IRQ(); #endif } if(EXTI_GetITStatus(EXTI_Line12)) //--EXTI12--// { EXTI_ClearITPendingBit(EXTI_Line12); #ifdef USE_EXTI12 EXTI12_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI12 pUltExt12->IRQ(); #endif #ifdef USE_CAPTURE_EXIT12 pICPExt12->IRQ(); #endif } if(EXTI_GetITStatus(EXTI_Line13)) //--EXTI13--// { EXTI_ClearITPendingBit(EXTI_Line13); #ifdef USE_EXTI13 EXTI13_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI13 pUltExt13->IRQ(); #endif #ifdef USE_CAPTURE_EXIT13 pICPExt13->IRQ(); #endif } if(EXTI_GetITStatus(EXTI_Line14)) //--EXTI14--// { EXTI_ClearITPendingBit(EXTI_Line14); #ifdef USE_EXTI14 EXTI14_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI14 pUltExt14->IRQ(); #endif #ifdef USE_CAPTURE_EXIT14 pICPExt14->IRQ(); #endif } if(EXTI_GetITStatus(EXTI_Line15)) //--EXTI15--// { EXTI_ClearITPendingBit(EXTI_Line15); #ifdef USE_EXTI15 EXTI15_IRQ(); #endif #ifdef USE_ULTRASONIC_EXTI15 pUltExt15->IRQ(); #endif #ifdef USE_CAPTURE_EXIT15 pICPExt15->IRQ(); #endif } }
/* interrupt handler for PA10~15,PB10~15,PC10~15,PD1015,PE10~15 */ void EXTI15_10_IRQHandler(void) { digitalWrite(72,HIGH); if (EXTI_GetITStatus(EXTI_Line10) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line10); if(NULL != callbacksEXTI[10]) { callbacksEXTI[10](); } } if (EXTI_GetITStatus(EXTI_Line11) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line11); if(NULL != callbacksEXTI[11]) { callbacksEXTI[11](); } } if (EXTI_GetITStatus(EXTI_Line12) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line12); if(NULL != callbacksEXTI[12]) { callbacksEXTI[12](); } } if (EXTI_GetITStatus(EXTI_Line13) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line13); if(NULL != callbacksEXTI[13]) { callbacksEXTI[13](); } } if (EXTI_GetITStatus(EXTI_Line14) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line14); if(NULL != callbacksEXTI[14]) { callbacksEXTI[14](); } } if (EXTI_GetITStatus(EXTI_Line15) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line15); if(NULL != callbacksEXTI[15]) { callbacksEXTI[15](); } } }
/** * @brief This function handles External lines 4 to 15 interrupt request. * @param None * @retval None */ void EXTI4_15_IRQHandler(void) { uint32_t tmp = 0, tmp1 = 0; uint8_t index = 0; if((EXTI_GetITStatus(LEFT_BUTTON_EXTI_LINE) != RESET)) { /* Set the LCD Back Color */ LCD_SetBackColor(White); StartEvent = 0; /* Reset Counter*/ RTCAlarmCount = 0; /* Disable the alarm */ RTC_AlarmCmd(RTC_Alarm_A, DISABLE); /* Display Char on the LCD : XXX% */ LCD_DisplayChar(40,110,0x30); LCD_DisplayChar(40,88, 0x30); LCD_DisplayChar(40,66, 0x30); LCD_DisplayChar(40,44, 0x25); for (index = 0; index < 100 ; index++) { if ((index % 2) ==0) { /* Set the LCD Text Color */ LCD_SetTextColor(Blue); LCD_DrawLine(70 + (index/2) , 120 - (index/2) , 101 - (index + 1) ,Horizontal); /* Set the LCD Text Color */ LCD_SetTextColor(White); LCD_DrawLine(170 - (index/2) , 120 - (index/2) , 101 - (index + 1) ,Horizontal); } } /* Displays MESSAGE6 on line 5 */ LCD_SetFont(&Font12x12); /* Set the LCD Back Color */ LCD_SetBackColor(Blue); LCD_SetTextColor(White); LCD_DisplayStringLine(LINE(19), (uint8_t *)MESSAGE6); LCD_SetFont(&Font16x24); /* Set the LCD Text Color */ LCD_SetTextColor(Black); /* Clear the EXTI pending bit */ EXTI_ClearITPendingBit(LEFT_BUTTON_EXTI_LINE); } else if (EXTI_GetITStatus(RIGHT_BUTTON_EXTI_LINE) != RESET) { if(StartEvent == 8) { StartEvent = 0; /* Enable the alarmA */ RTC_AlarmCmd(RTC_Alarm_A, DISABLE); /* Displays MESSAGE4 on line 5 */ LCD_SetFont(&Font12x12); /* Set the LCD Back Color */ LCD_SetBackColor(Blue); LCD_SetTextColor(White); LCD_DisplayStringLine(LINE(19), (uint8_t *)MESSAGE4); LCD_SetFont(&Font16x24); /* Set the LCD Text Color */ LCD_SetTextColor(Black); } else { /* Displays MESSAGE5 on line 5 */ LCD_SetFont(&Font12x12); /* Set the LCD Back Color */ LCD_SetBackColor(Blue); LCD_SetTextColor(White); LCD_DisplayStringLine(LINE(19), (uint8_t *)MESSAGE5); LCD_SetFont(&Font16x24); /* Set the LCD Back Color */ LCD_SetBackColor(White); /* Enable the alarmA */ RTC_AlarmCmd(RTC_Alarm_A, ENABLE); StartEvent = 8; } /* Clear the EXTI pending bit */ EXTI_ClearITPendingBit(RIGHT_BUTTON_EXTI_LINE); } else if(EXTI_GetITStatus(DOWN_BUTTON_EXTI_LINE) != RESET) { if(RTCAlarmCount == 0) { SecondNumb--; if(SecondNumb < 15) SecondNumb = 15; tmp = (uint32_t) (SecondNumb/60); tmp1 = SecondNumb -(tmp*60); LCD_SetFont(&Font16x24); /* Set the LCD text color */ LCD_SetTextColor(Blue); /* Set the LCD Back Color */ LCD_SetBackColor(White); LCD_DisplayStringLine(95, " "); /* Display Char on the LCD : XXX% */ LCD_DisplayChar(95,294, (tmp / 10) +0x30); LCD_DisplayChar(95,278, (tmp % 10 ) +0x30); LCD_DisplayChar(95,262, ':'); LCD_DisplayChar(95,246, (tmp1 / 10) +0x30); LCD_DisplayChar(95,230, (tmp1 % 10 ) +0x30); } /* Clear the EXTI pending bit */ EXTI_ClearITPendingBit(DOWN_BUTTON_EXTI_LINE); } else if (EXTI_GetITStatus(UP_BUTTON_EXTI_LINE) != RESET) { if(RTCAlarmCount == 0) { SecondNumb++; tmp = (uint32_t) (SecondNumb/60); tmp1 = SecondNumb -(tmp*60); LCD_SetFont(&Font16x24); /* Set the LCD text color */ LCD_SetTextColor(Blue); /* Set the LCD Back Color */ LCD_SetBackColor(White); LCD_DisplayStringLine(95, " "); /* Display Char on the LCD : XXX% */ LCD_DisplayChar(95,294, (tmp / 10) +0x30); LCD_DisplayChar(95,278, (tmp % 10 ) +0x30); LCD_DisplayChar(95,262, ':'); LCD_DisplayChar(95,246, (tmp1 / 10) +0x30); LCD_DisplayChar(95,230, (tmp1 % 10 ) +0x30); } /* Clear the EXTI pending bit */ EXTI_ClearITPendingBit(UP_BUTTON_EXTI_LINE); } }
void EXTI15_10_IRQHandler( void ) { #if !defined( USE_NO_TIMER ) if( TimerGetLowPowerEnable( ) == true ) { RtcRecoverMcuStatus( ); } #endif if( EXTI_GetITStatus( EXTI_Line10 ) != RESET ) { if( GpioIrq[10] != NULL ) { GpioIrq[10]( ); } EXTI_ClearITPendingBit( EXTI_Line10 ); } if( EXTI_GetITStatus( EXTI_Line11 ) != RESET ) { if( GpioIrq[11] != NULL ) { GpioIrq[11]( ); } EXTI_ClearITPendingBit( EXTI_Line11 ); } if( EXTI_GetITStatus( EXTI_Line12 ) != RESET ) { if( GpioIrq[12] != NULL ) { GpioIrq[12]( ); } EXTI_ClearITPendingBit( EXTI_Line12 ); } if( EXTI_GetITStatus( EXTI_Line13 ) != RESET ) { if( GpioIrq[13] != NULL ) { GpioIrq[13]( ); } EXTI_ClearITPendingBit( EXTI_Line13 ); } if( EXTI_GetITStatus( EXTI_Line14 ) != RESET ) { if( GpioIrq[14] != NULL ) { GpioIrq[14]( ); } EXTI_ClearITPendingBit( EXTI_Line14 ); } if( EXTI_GetITStatus( EXTI_Line15 ) != RESET ) { if( GpioIrq[15] != NULL ) { GpioIrq[15]( ); } EXTI_ClearITPendingBit( EXTI_Line15 ); } }
void EXTI1_IRQHandler(void) { if (EXTI_GetITStatus(EXTI_Line1) == SET) { jshPushIOWatchEvent(EV_EXTI1); EXTI_ClearITPendingBit(EXTI_Line1); } }
/******************************************************************************* * Function Name : EXTI15_10_IRQHandler * Description : This function handles EXTI15_10 interrupt request. * Input : None * Output : None * Return : None *******************************************************************************/ void EXTI15_10_IRQHandler(void) { //EXTI_Line10 and EXTI_Line12 support is not required for CORE_V02 if (EXTI_GetITStatus(EXTI_Line13) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line13); if(NULL != Wiring_EXTI_Interrupt_Handler) { Wiring_EXTI_Interrupt_Handler(13); } } if (EXTI_GetITStatus(EXTI_Line14) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line14); if(NULL != Wiring_EXTI_Interrupt_Handler) { Wiring_EXTI_Interrupt_Handler(14); } } if (EXTI_GetITStatus(EXTI_Line15) != RESET) { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line15); if(NULL != Wiring_EXTI_Interrupt_Handler) { Wiring_EXTI_Interrupt_Handler(15); } } if (EXTI_GetITStatus(EXTI_Line11) != RESET)//CC3000_WIFI_INT_EXTI_LINE { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line11);//CC3000_WIFI_INT_EXTI_LINE SPI_EXTI_IntHandler(); } #if defined (USE_SPARK_CORE_V01) if (EXTI_GetITStatus(EXTI_Line10) != RESET)//BUTTON1_EXTI_LINE { /* Clear the EXTI line pending bit */ EXTI_ClearITPendingBit(EXTI_Line10);//BUTTON1_EXTI_LINE BUTTON_DEBOUNCED_TIME[BUTTON1] = 0x00; /* Disable BUTTON1 Interrupt */ BUTTON_EXTI_Config(BUTTON1, DISABLE); /* Enable TIM1 CC4 Interrupt */ TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE); } #endif }