Re: TIMER計時
|
||||
---|---|---|---|---|
資深會員
|
如果只是訊號High Low就不需要處理按鍵彈跳問題。以下供參考用:
外部中斷處理事項 1.設成正緣觸發 2.進入中斷後,清除Timer值 3.設成負緣觸發 4.進入中斷後,儲存Timer值到T 5.T即為訊號High的時間 若MCU指令週期為1uS,則Timer Scaler設為1:8 在100uS時可擷取到值約0x0C(最短時間至少保留0x0A以上的解析度供計算及判斷) 在25mS時可擷取到值約0xC35(表示需要高位元組來計時) 除了使用外部中斷亦需使用到Timer中斷 Timer中斷處理事項 1.清除中斷旗標 2.TimerH + 1 3.返回
發表於: 2008/10/13 12:02
|
|||
|
Re: TIMER計時
|
||||
---|---|---|---|---|
高級會員
|
用按鍵真的會比較麻煩!!!
需避開彈跳時間!!! 你可以自己做個震盪線路(例如555)!!! 這樣模擬你要的計時訊號會比較接近,也省去你要考慮彈跳的麻煩!!! 你可用interrupt-on-change的功能!!! 一開始設為high,當有變動至low時設flag為1,啟動timer時間,當由low變動至high時,紀錄timer時間做運算,並設flag為0及清除時間,以便下次由high再變low時計算! 這樣即可捕捉你要的時間!
發表於: 2008/10/13 11:52
|
|||
|
Re: TIMER計時
|
||||
---|---|---|---|---|
新會員
|
我是想計時一個訊號的時間(High的時間)
那時間帶約在100uS~25mS 所以在這隻腳High的時候開始計時 變回Low的時候停止 這樣要怎麼寫呢?? 還是先用按鈕的方法教一下 用手錶計時的那種 按一下開始在按一下結束 那種方法 我是不知道如何啟動計時跟停止 我會用中斷 版主 ~ 幫幫我 非常感謝
發表於: 2008/10/13 9:01
|
|||
|
Re: TIMER計時
|
||||
---|---|---|---|---|
版主
|
看似問題簡單,但要做的好是要有些功力的。
如果只用單一個SW來做的話,就有必要考慮彈跳問題,用 Timer 處理彈跳避免按鍵的誤動作,這對初學著是比較辛苦的,不過這是一定要會的進階動作。 weiting 建議的使用兩個獨立按鍵的方式對初學著會是比較簡單的方式,先用兩個按鍵成功後再改成單鍵看看。 你這裡所謂的用 Timer 計時太廣泛了一點,計何種時?請說明。
發表於: 2008/10/9 8:43
|
|||
|
Re: TIMER計時
|
||||
---|---|---|---|---|
新會員
|
你要完成這一個動作的話,建議你可以用Flag方式去做,你可以設一個Flag,"1"是開始,"0"停止,這樣就可以做判斷,什麼時是開始或是停止
發表於: 2008/10/8 11:14
|
|||
|
Re: TIMER計時
|
||||
---|---|---|---|---|
新會員
|
SW1如果試用PB0 1 2的外部中斷會不會比較方便??
發表於: 2008/10/7 16:25
|
|||
|
TIMER計時
|
||||
---|---|---|---|---|
新會員
|
有辦法利用TIMER計時嗎??
SW1第一次按下開始 SW1第二次按下停止 計算中間的時間 有沒有大大有SAMPLE給小弟參考 P18F4550 C語言 謝謝
發表於: 2008/10/7 16:08
|
|||
|