void TM_EXTI_Handler(uint16_t GPIO_Pin) { volatile static uint8_t counter = 0; /* Handle external line 0 interrupts */ if (GPIO_Pin == GPIO_Pin_0) { /* Toggle RED led */ TM_DISCO_LedToggle(LED_RED); TM_ILI9341_Puts(20, 80, "button pressed, button pressed, button pressed, button pressed, button pressed, button pressed, button pressed, button pressed, ", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_ORANGE); /* Check counter */ if (++counter >= 10) { /* Detach external interrupt for GPIO_Pin_0 no matter on which GPIOx is connected */ TM_EXTI_Detach(GPIO_Pin_0); TM_ILI9341_Puts(20, 80, "Exi detached", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_ORANGE); } } /* Handle external line 13 interrupts */ if (GPIO_Pin == GPIO_Pin_13) { /* Toggle GREEN led */ TM_DISCO_LedToggle(LED_GREEN); /* Check counter */ if (++counter >= 10) { /* Detach external interrupt for GPIO_Pin_0 no matter on which GPIOx is connected */ TM_EXTI_Detach(GPIO_Pin_13); } } }
void TM_EXTI_Handler(uint16_t GPIO_Pin) { /* Handle external line 0 interrupts */ if (GPIO_Pin == GPIO_Pin_0) { /* Toggle RED led */ TM_DISCO_LedToggle(LED_RED); /* Check counter */ if (++counter >= 10) { /* Detach external interrupt for GPIO_Pin_0 no matter on which GPIOx is connected */ TM_EXTI_Detach(GPIO_Pin_0); } } /* Handle external line 13 interrupts */ if (GPIO_Pin == GPIO_Pin_13) { /* Toggle GREEN led */ TM_DISCO_LedToggle(LED_GREEN); /* Check counter */ if (++counter >= 10) { /* Detach external interrupt for GPIO_Pin_0 no matter on which GPIOx is connected */ TM_EXTI_Detach(GPIO_Pin_13); } } }
void TM_EXTI_Handler(uint16_t GPIO_Pin) { /* Handle external line 0 interrupts */ if (GPIO_Pin == DTMF_BIT4_PIN) { if(TM_GPIO_GetInputPinValue(DTMF_BIT0_PORT, DTMF_BIT0_PIN)==0){ // Q1 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT1_PORT, DTMF_BIT1_PIN)==0){// Q2 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT2_PORT, DTMF_BIT2_PIN)==0){// Q3 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0)// Q4 =0 Q321=0 express = 'D'; else express = '8'; } else{ // Q1 =0,Q2=0,Q3=1 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0) express = '4'; else express = '#'; } } else //Q1=0,Q2=1, { if(TM_GPIO_GetInputPinValue(DTMF_BIT2_PORT, DTMF_BIT2_PIN)==0){// Q3 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0)// Q4 =0 express = '2'; else express = '0'; } else{ // Q1 =0,Q2=1,Q3=1 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0) express = '6'; else express = 'B'; } } } else{ //Q1=1 if(TM_GPIO_GetInputPinValue(DTMF_BIT1_PORT, DTMF_BIT1_PIN)==0){// Q2 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT2_PORT, DTMF_BIT2_PIN)==0){// Q3 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0)// Q4 =0 express = '1'; else express = '9'; } else{ // Q1 =1,Q2=0,Q3=1 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0) express = '5'; else express = 'A'; } } else //Q1=1,Q2=1, { if(TM_GPIO_GetInputPinValue(DTMF_BIT2_PORT, DTMF_BIT2_PIN)==0){// Q3 =0 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0)// Q4 =0 express = '3'; else express = '.'; } else{ // Q1 =1,Q2=1,Q3=1 if(TM_GPIO_GetInputPinValue(DTMF_BIT3_PORT, DTMF_BIT3_PIN)==0) express = '7'; else express = 'C'; } } } TM_USART_Putc(USART3,express); /* Toggle RED led */ // TM_DISCO_LedToggle(LED_RED); // /* Check counter */ if (++counter >= 10) { /* Detach external interrupt for GPIO_Pin_0 no matter on which GPIOx is connected */ TM_EXTI_Detach(GPIO_Pin_0); } } // /* Handle external line 13 interrupts */ if (GPIO_Pin == W1_D0_PIN) { /* run W1 D0 - dieu khien RELAY_DK1_PORT , RELAY_DK1_PIN*/ if(!flag_W1D1) { flag_W1D0 =1 ; flag_W1D1 =0; timeout = value_dip; timer_dk1 =0; } } if (GPIO_Pin == W1_D1_PIN) { /* run W1 D1 - dieu khien RELAY_DK2_PORT , RELAY_DK2_PIN*/ if(!flag_W1D0) { flag_W1D1 =1 ; flag_W1D0 =0 ; timeout = value_dip; timer_dk2 =0; } } if (GPIO_Pin == W2_D1_PIN) { // ngat cac cong /* run w2 D1 */ timerdk1=(timeout*2); timerdk2=(timeout*2); } }