yincheng.zhong
2023-06-28 81707230b1ff76500e158fbde1784e7c080e3e68
Src/stm32l0xx_it.c
@@ -43,6 +43,8 @@
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
float nomove_count=0;
float button_delay = 1;
u16 button_start;
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
@@ -61,11 +63,13 @@
extern DMA_HandleTypeDef hdma_usart1_tx;
extern UART_HandleTypeDef huart1;
/* USER CODE BEGIN EV */
float motor_ontime=0;
uint8_t userkey_state = 0;
extern u8 active_flag;
/* USER CODE END EV */
/******************************************************************************/
/*           Cortex-M0+ Processor Interruption and Exception Handlers          */
/*           Cortex-M0+ Processor Interruption and Exception Handlers          */
/******************************************************************************/
/**
  * @brief This function handles Non maskable interrupt.
@@ -91,6 +95,8 @@
  while (1)
  {
    /* USER CODE BEGIN W1_HardFault_IRQn 0 */
      printf("HardFault_Handler.\r\n");
      SCB->AIRCR = 0X05FA0000|(unsigned int)0x04;
    /* USER CODE END W1_HardFault_IRQn 0 */
  }
}
@@ -148,15 +154,41 @@
void EXTI0_1_IRQHandler(void)
{
  /* USER CODE BEGIN EXTI0_1_IRQn 0 */
    static u16 lastcount=0;
    u16 count_diff;
   SystemClock_Config();
   if(GET_IMUINT)
   {
      nomove_count = 0;
   }
   
      if(!GET_USERKEY)
   if(!GET_USERKEY)
   {
      userkey_state = 1;
      if(button_delay>=1)
        {
            button_start = GetLPTime();
            button_delay = 0;
        }else{
            u16 button_time = GetLPTime()-button_start;
           if(button_time<0)
               button_time+=1000;
           if(button_time>50&&button_time<300)
           {
            DoubleClickProcess();
           }
        }
      if(g_com_map[MOTOR_ENABLE])
      {
      MOTOR_ON;
      delay_ms(10);
      MOTOR_OFF;
      }
      nomove_count = 0;
      waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME;
//      waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME;
   //   UsartInit();
      //   MOTOR_ON;      
   }