|
主程序 time,time2,time3由TIM1定時(shí)器提供時(shí)鐘,Sys提供延時(shí)函數(shù),TIM3提供PWM(兩路)
546940a9acdaea7679f00e3d83efa088.png (68.22 KB, 下載次數(shù): 50)
下載附件
2021-10-25 12:03 上傳
void EXTI4_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line4)!=RESET)//不等于低電平就是1,按下的時(shí)候就不為1了
{
Delay_ms(10);
if(Menu==1)
{
Menu=2;
}else if(Menu==2)
{
Menu=1;
}
EXTI_ClearITPendingBit(EXTI_Line4); //清理標(biāo)志位
}
}
void EXTI9_5_IRQHandler(void)
{
char keytemp=0x55;
/*keytemp&0X0F 表示只取末尾四位為有效值*/
/*0x0F 表示采樣四次IO為高電平 表示IO狀態(tài)穩(wěn)定在高電平*/
/*0x00 表示采樣四次IO為低電平 表示IO狀態(tài)穩(wěn)定在低電平*/
while(((keytemp&0X0F)!=0x0F)&&((keytemp&0X0F)!=0x00))
{
/*間隔1us后采集*/
Delay_us(1);
/*按鍵緩存器左移一位*/
keytemp<<=1;
/*當(dāng)脈沖腳為高時(shí) 或稱(chēng)為A相*/
if(knob1_clk== 1)
{
/*按鍵緩存器末尾補(bǔ)1*/
keytemp |= 0x01;
}
}
if(Menu==2)
{
if(knob1_clk==1)
{
if(knob1_dt==1)
{
Mode_Sv=Mode_Sv+5; /*A上升沿時(shí) B為高 順時(shí)針*/
}
else
{
Mode_Sv=Mode_Sv-5; /*A上升沿時(shí) B為低 逆時(shí)針*/
}
}else{
if(knob1_dt==0)
{
Mode_Sv=Mode_Sv+5; /*A下降沿時(shí) B為低 順時(shí)針*/
}
else
{
Mode_Sv=Mode_Sv-5; /*A下降沿時(shí) B為高 逆時(shí)針*/
}
}
}
EXTI_ClearITPendingBit(EXTI_Line6); //清除LINE6上的中斷標(biāo)志位
}
|
|