/*! \file gd32f3x0_it.c \brief interrupt service routines */ /* Copyright (C) 2017 GigaDevice 2017-06-06, V1.0.0, firmware for GD32F3x0 */ #include "gd32f3x0_it.h" #include uint16_t readvalue1 = 0, readvalue2 = 0; __IO uint16_t ccnumber = 0; __IO uint32_t count = 0; __IO float fre = 0; /*! \brief this function handles NMI exception \param[in] none \param[out] none \retval none */ void NMI_Handler(void) { } /*! \brief this function handles HardFault exception \param[in] none \param[out] none \retval none */ void HardFault_Handler(void) { /* if Hard Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles MemManage exception \param[in] none \param[out] none \retval none */ void MemManage_Handler(void) { /* if Memory Manage exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles BusFault exception \param[in] none \param[out] none \retval none */ void BusFault_Handler(void) { /* if Bus Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles UsageFault exception \param[in] none \param[out] none \retval none */ void UsageFault_Handler(void) { /* if Usage Fault exception occurs, go to infinite loop */ while (1); } /*! \brief this function handles SVC exception \param[in] none \param[out] none \retval none */ void SVC_Handler(void) { } /*! \brief this function handles DebugMon exception \param[in] none \param[out] none \retval none */ void DebugMon_Handler(void) { } /*! \brief this function handles PendSV exception \param[in] none \param[out] none \retval none */ void PendSV_Handler(void) { } /*! \brief this function handles SysTick exception \param[in] none \param[out] none \retval none */ void SysTick_Handler(void) { } /*! \brief this function handles TIMER2 interrupt request \param[in] none \param[out] none \retval none */ void TIMER2_IRQHandler(void) { if(SET == timer_interrupt_flag_get(TIMER2,TIMER_INT_FLAG_CH0)){ /* clear channel 0 interrupt bit */ timer_interrupt_flag_clear(TIMER2,TIMER_INT_FLAG_CH0); if(0 == ccnumber){ /* read channel 0 capture value */ readvalue1 = timer_channel_capture_value_register_read(TIMER2,TIMER_CH_0); ccnumber = 1; }else if(1 == ccnumber){ /* read channel 0 capture value */ readvalue2 = timer_channel_capture_value_register_read(TIMER2,TIMER_CH_0); if(readvalue2 > readvalue1){ count = (readvalue2 - readvalue1); }else{ count = ((0xFFFF - readvalue1) + readvalue2); } fre = (float)2000 / count; printf("the value1 is %d,the value2 is %d\n",readvalue1,readvalue2); printf("the count is %d\n",count); printf("the frequence is %f\n",fre); ccnumber = 0; } } }