現(xiàn)在用ch423度按鍵輸入,我采用的是oc15作為中斷,系統(tǒng)在中斷函數(shù)中發(fā)送IIC指令讀取IO7-IO0的值。然后再主循環(huán)中判斷IO7-IO0是哪個按鍵。調試下來發(fā)現(xiàn)按鍵經(jīng)常讀不到,要按好幾次可以讀到一次。大家用ch423讀取按鍵都是 怎么做的,有什么好的優(yōu)化方法嗎
此中斷產(chǎn)生前提是檢測到IO7~IO0 引腳輸入與事先寫入IO7~IO0 引腳的輸出寄存器的數(shù)據(jù)不同。
撤銷中斷也是通過修改輸出寄存器。
按鍵過程中,示波器檢測OC15電平變化是否正常。
? ? ? ? ? ? ? ? ? ? ? ? ? ?
此中斷產(chǎn)生前提是檢測到IO7~IO0 引腳輸入與事先寫入IO7~IO0 引腳的輸出寄存器的數(shù)據(jù)不同。
撤銷中斷也是通過修改輸出寄存器。
按鍵過程中,示波器檢測OC15電平變化是否正常。
? ? ? ? ? ? ? ? ? ? ? ?
OC15電平我后面再測一下,我是斷電調試發(fā)現(xiàn)每次是可以進中斷的。按照這種中斷機制,那最好是按鍵輸入之后,中斷里面馬上控制IO7-IO0的值復位,防止按鈕松開又會發(fā)生中斷?
建議默認無按鍵情況寫FF(內部有上拉)。有按鍵按下時,必然有中斷,進入中斷做記錄,并修改輸出端口,撤銷中斷,等到抬起后,仍會產(chǎn)生中斷,根據(jù)記錄值可以知道一次完整的按下抬起過程,修改輸出端口,撤銷中斷。8個端口統(tǒng)一處理。