中级会员
 
- 积分
- 323
- 金钱
- 323
- 注册时间
- 2018-1-23
- 在线时间
- 40 小时
|
void Int_Exit_Init()
{
NVIC_InitTypeDef NVIC_InitStruct;
GPIO_InitTypeDef GPIO_InitStruct;
EXTI_InitTypeDef EXTI_InitStruct;
RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO,ENABLE);
KEY_Init();
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE,&GPIO_InitStruct);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3);
EXTI_InitStruct.EXTI_Line =EXTI_Line3;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStruct);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4);
EXTI_InitStruct.EXTI_Line =EXTI_Line4;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStruct);
//ò»oÅ3μλÅäÖÃ
NVIC_InitStruct.NVIC_IRQChannel = EXTI4_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_Init(&NVIC_InitStruct);
//¶toÅ3μλÅäÖÃ
NVIC_InitStruct.NVIC_IRQChannel = EXTI3_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 11;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
NVIC_Init(&NVIC_InitStruct);
}
//ò»oÅ3μλ
void EXTI4_IRQHandler()
{
u8 i;
delay_ms(10);
if (key_times1 == 0) //μúò»′ΰ′ÏÂÆô¶ˉ¼ü¼èëÃüÂë
{
LED1 = !LED1;
keychuli1(0,0);
times += 1;
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»úÕy×a£¬′æ3μ
}
if (times == 1) //μú¶t′ΰ′ÏÂÑéÖ¤ÃüÂë
{
keychuli1(0,1);
if(mima1[0] == mima2[0])
{
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»ú·′×a£¬è¡3μ
mima1[0]=0; //Çå¿ÕÃüÂë
mima2[0]=0;
}
else
{
for(i=3;i>0;i--)
{
LCD_ShowString(60,160,210,16,16,"Password error !");
LCD_ShowString(40,190,210,16,16,"Please inpue again!");
keychuli1(0,1);
if(mima1[0] == mima2[0])
{
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»ú·′×a£¬è¡3μ
mima1[0]=0; //Çå¿ÕÃüÂë
mima2[0]=0;
break;
}
}
}
times -= 1;
}
EXTI_ClearITPendingBit(EXTI_Line4);
}
//¶toÅ3μλkey1
void EXTI3_IRQHandler()
{
u8 i;
delay_ms(10);
if (key_times2 == 0) //μúò»′ΰ′ÏÂÆô¶ˉ¼ü¼èëÃüÂë
{
LED0 = !LED0;
keychuli1(1,0);
times += 1;
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»úÕy×a£¬′æ3μ
}
if (times == 1) //μú¶t′ΰ′ÏÂÑéÖ¤ÃüÂë
{
keychuli1(1,1);
if(mima1[1] == mima2[1])
{
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»ú·′×a£¬è¡3μ
mima1[1]=0; //Çå¿ÕÃüÂë
mima2[1]=0;
}
else
{
for(i=3;i>0;i--)
{
LCD_ShowString(60,160,210,16,16,"Password error !");
LCD_ShowString(40,190,210,16,16,"Please inpue again!");
keychuli1(1,1);
if(mima1[1] == mima2[1])
{
Tim3_Init(9999,7199); //10Khz ¶¨ê±10s
Motor_PWM(899,0); //μç»ú·′×a£¬è¡3μ
mima1[1]=0; //Çå¿ÕÃüÂë
mima2[1]=0;
break;
}
}
}
times -= 1;
}
EXTI_ClearITPendingBit(EXTI_Line3);
}
|
|