Re: 關於開關動作的捕捉
|
||||
---|---|---|---|---|
資深會員
|
這是個基本時間分配的問題吧!?
我想最快的方式,是你UART放於主程式,按鍵偵測放於中斷,這樣不就得了!? UART的處理本應分段執行,應該很少會需要一次執行兼等待完所有通訊處理的,若是正常分段得宜,是不需要中斷的,只是沒其他用途的話,不用白不用乎~
發表於: 2007/9/14 14:00
|
|||
|
Re: 關於開關動作的捕捉
|
||||
---|---|---|---|---|
資深會員
|
你使用delay來計算時間就是錯誤的程式撰寫方式了
請用timer中斷來計時,才是正確方式
發表於: 2007/9/14 14:56
|
|||
|
Re: 關於開關動作的捕捉
|
||||
---|---|---|---|---|
版主
|
按鍵的處理,不管是長按或短按、處理按鍵的彈跳等等問題,都只要在 Timer 的中斷下處理。主程式可以不用管這些雜事。這樣程式才會簡潔、結構化。昉間也有很多PIC的書討論此基本問題可以去找一找書來看。
發表於: 2007/9/17 14:47
|
|||
|
Re: 關於開關動作的捕捉
|
||||
---|---|---|---|---|
資深會員
|
大概的一個想法如下.
初始設定: 1.將你要用的按鍵腳位,設成輸入. 2.按鍵腳位設定成Pin Change 3.將Pin Change 中斷功能開啟. 4.將timer1設定成1:1,timer1 off,中斷關閉. 中斷部分: 先判斷中斷源,是Pin Change就做下列動作. 假設你的電路,平常時高電壓,按鍵按下變成低電位,則信號如下:
--------+ +-----------
當信號為Lo時: 初始化timer1=0,啟動timer1. 當信號為hi時: 停止timer1,判斷按鍵按下時間.並設定按鍵旗標. 主程式,UART則依你之前的不需變更,只要增加判斷按鍵旗標的部分即可.
發表於: 2007/9/18 9:20
|
|||
|
Re: 關於開關動作的捕捉
|
||||
---|---|---|---|---|
初級會員
|
非常感謝,樓上大大的指點,非常感謝!
發表於: 2007/9/18 16:16
|
|||
|