要求,3個單片機io口,分別做3個按鍵,其中一個按鍵需支持長按功能。
IO口引腳分別是PA3.PA4.PF2,已定義好如下
#define AD_PREV_INIT() {GPIOADIR |= BIT(4) ;GPIOADE |= BIT(4);GPIOAPU |= BIT(4);}
#define AD_PREV_IS() (GPIOA & BIT(4))
#define AD_NEXT_INIT() {GPIOADIR |= BIT(3) ;GPIOADE |= BIT(3);GPIOAPU |= BIT(3);}
#define AD_NEXT_IS() (GPIOA & BIT(3))
#define AD_PLAY_INIT() {GPIOFDIR |= BIT(2) ;GPIOFDE |= BIT(2);GPIOFPU |= BIT(2);}
#define AD_PLAY_IS() (GPIOF & BIT(2))
當按鍵按下時會產生一個65ms的低電平,然后一直置高。
當持續按下時會產生一個65ms的低電平,然后置高750ms,再置低65ms,再置高750ms,如此回圈。
程式中有tmr5ms_isr,tmr1ms_isr等定時器,延時函式有delay_5ms,delay_us,delay_ms
短按時發一個訊息出去即可,msg_enqueue(KU)
長按時發一個訊息出去即可,msg_enqueue(KL)
哪位大神幫幫忙寫一個函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/9293.html
標籤:單片機/工控
下一篇:歐姆龍電機如何獲取當前的角度
