痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 3111|回復: 5

求助 8951的中斷問題

[複製鏈接]
發表於 2011-9-19 10:18:44 | 顯示全部樓層 |閱讀模式
各位先進大:
    搖搖棒續集中 想要利用中斷來計取 搖動的來回時間, 8951有Timer0 會因為內部的 gate 設為hi ,利用外部 INT0變為 HI 就會開始紀錄CLK (Gate=1,C/T=1,M1=1,M0=0),另外, 外部中斷 INT0會因為變HI或是降緣觸發執行中斷服務程式,現有幾個疑問..
1.這兩個可以合併使用嗎?
2.INT0一變HI就執行中斷服務,但是內部的TIMER0 要等到INT0變LO才停止計數,這樣時序上面剛好相反不知如何解決?
3.我想 把TIMER0計數的值計算分成74等份給 TIMER1 作為時間延遲用,每一次TIMER1中斷就改變LED的顯示(共74個)這樣可行嗎?
我的搖搖棒搖動週期是 搖50下16秒鐘

謝謝!!
發表於 2011-9-19 11:36:19 | 顯示全部樓層
不必想那麼複雜......全部用軟體計時應該就可以了。

先設一個1mS計時中斷,將需要時序的程式都掛在這中斷之下,如掃描LED 、計算搖晃時間等....

計算搖晃時間程式一直檢查搖晃感知輸入,經過除彈跳程序,當減知狀態改變之後就開時計時(計時值計在RAM內),等下一次狀態改變就將計時值取出另存,並將RAM位置歸零,繼續下一周期計時........

而掃瞄速度就是取出的計時值再除以掃描欄位數,計算出的間隔再減短一些以便能全部掃瞄出來。

16/50=0.32,也就是搖晃一次約320mS,這用軟體檢查來計時應該足以應付,這樣可以減少硬體複雜度。
發表於 2011-9-19 11:55:31 | 顯示全部樓層
scan 與 int. 各有特色,需以對反應及運算要求而選用.
 樓主| 發表於 2011-9-19 13:53:44 | 顯示全部樓層
ysc 發表於 2011-9-19 11:36 AM static/image/common/back.gif
不必想那麼複雜......全部用軟體計時應該就可以了。

先設一個1mS計時中斷,將需要時序的程式都掛在這中斷 ...

YSC大:
   感謝指導,我先試試看!!
發表於 2011-9-19 19:52:03 | 顯示全部樓層
其實要用外部中斷或計時中斷都可以
但每16秒晃50下,我是比較好奇那第2個16秒和第3個第4個16秒時會晃幾下
換成是我大概會手抽筋,
所以換成外部中斷作觸發也許會好一點.
 樓主| 發表於 2011-9-19 21:03:40 | 顯示全部樓層
legion 發表於 2011-9-19 07:52 PM static/image/common/back.gif
其實要用外部中斷或計時中斷都可以
但每16秒晃50下,我是比較好奇那第2個16秒和第3個第4個16秒時會晃幾下
換 ...

LEGION大:
   YSC大的建議我會先試著寫程式,您的建議我不知道如何著手,可否再指點一下!! 假如硬體方面也可以學會的話,那就更好了...
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-5-6 02:22 PM , Processed in 0.055030 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.