74 lines
1.9 KiB
C
74 lines
1.9 KiB
C
|
/*****************************************************************
|
|||
|
;Project: Light
|
|||
|
;MCU:
|
|||
|
;Date:
|
|||
|
;File:
|
|||
|
;Function:
|
|||
|
******************************************************************/
|
|||
|
#include "key.h"
|
|||
|
#include "gpio.h"
|
|||
|
#include "delay.h"
|
|||
|
#include "config.h"
|
|||
|
#include "DebugLog.h"
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
extern TaskFlagUnion_t tTaskFlag;
|
|||
|
extern uint8_t Adv_State;
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void GPIO_callback(void);
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//GPIO<49><4F>ʼ<EFBFBD><CABC>
|
|||
|
//<2F>Ѳ<EFBFBD><D1B2>õ<EFBFBD><C3B5><EFBFBD>GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
void Gpio_Init(void)
|
|||
|
{
|
|||
|
PIN_Set_GPIO(0x01FF0F84,PIN_SEL_GPIO);
|
|||
|
GPIO_Set_Input( 0x01FF0F84,0x01FF0F84);
|
|||
|
PIN_Pullup_Enable(T_QFN_48,0x01FF0F84);
|
|||
|
GPIO_Input_Enable(0x01FF0F84);
|
|||
|
}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
void Key_Init(void)
|
|||
|
{
|
|||
|
PIN_Set_GPIO(U32BIT(SHOCK_PIN),PIN_SEL_GPIO);
|
|||
|
GPIO_Set_Input( U32BIT(SHOCK_PIN),0); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1>
|
|||
|
PIN_Pullup_Enable(T_QFN_48, U32BIT(SHOCK_PIN));
|
|||
|
GPIO_Input_Enable(U32BIT(SHOCK_PIN));
|
|||
|
io_irq_enable(U32BIT(SHOCK_PIN),GPIO_callback);
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
PIN_Set_GPIO(U32BIT(CHARGE_PIN),PIN_SEL_GPIO);
|
|||
|
GPIO_Set_Input( U32BIT(CHARGE_PIN),0); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD> <20><>ȡ<EFBFBD><C8A1>
|
|||
|
PIN_Pullup_Disable(T_QFN_48, U32BIT(CHARGE_PIN)); //<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
GPIO_Input_Enable(U32BIT(CHARGE_PIN));
|
|||
|
io_irq_disable(U32BIT(CHARGE_PIN)); //<2F>ر<EFBFBD>IO<49><4F><EFBFBD>жϹ<D0B6><CFB9><EFBFBD>
|
|||
|
}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
void GPIO_callback(void)
|
|||
|
{
|
|||
|
unsigned int SW;
|
|||
|
|
|||
|
SW=GPIO_IRQ_CTRL->GPIO_INT;
|
|||
|
|
|||
|
if(SW&U32BIT(SHOCK_PIN))
|
|||
|
{
|
|||
|
delay_ms(1);
|
|||
|
if((GPIO_Pin_Read(U32BIT(SHOCK_PIN)) & U32BIT(SHOCK_PIN))==0)
|
|||
|
{
|
|||
|
tTaskFlag.tFlag.shockFlag = 1;
|
|||
|
}
|
|||
|
|
|||
|
if(Adv_State == 0) //<2F><><EFBFBD><EFBFBD><EFBFBD>㲥
|
|||
|
{
|
|||
|
StartAdv();
|
|||
|
Adv_State = 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/*---------------------------------------------------------------*/
|
|||
|
|
|||
|
|