Re: [問題] 8051的外部中斷 除彈跳問題

看板ASM (組合語言)作者 (小哈)時間15年前 (2010/05/16 11:46), 編輯推噓4(405)
留言9則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《Jhih8051 ()》之銘言: : void EX0(void) interrupt 0 using 1 : { unsigned int Delay; EX0 = 0; Delay = 5000; while(Delay--) { if(SW == 0) { Delay = 5000; } } : cnt++; IE0 = 0; EX0 = 1; : } : 另外想請問, : 中斷旗標IE0是在進入中斷就被清除 or 執行完中斷副程式才清除? 進中斷時IE0就會清掉(by hardware) 但若有殘餘彈跳,則IE0 又會被set 所以我的作法是,在離開中斷程式前,手動清除IE0 反彈跳的Delay設定數值,跟你的頻率與彈跳特性有關 : 又,在中斷副程式執行過程中, : 如果又發生中斷,是否IE0也會被影響? yes。所以中斷程式要寫得越短越好 : 看似是一個簡單不過的問題, : 但真的卡很久在這裡了, : 要麻煩各位高手幫忙 > <" -- ※ 編輯: Aquatics 來自: 219.85.2.249 (05/16 11:47) ※ 編輯: Aquatics 來自: 219.85.2.249 (05/16 11:47)

05/16 13:33, , 1F
頻率是指震盪器頻率嗎@@?
05/16 13:33, 1F

05/16 20:26, , 2F
yes
05/16 20:26, 2F

05/16 21:02, , 3F
基本上在isr中用loop delay是不好的習慣
05/16 21:02, 3F

05/17 14:54, , 4F
真的非用INT當輸入的話,可以INT ISR一進入就把中斷除能
05/17 14:54, 4F

05/17 14:55, , 5F
然後ISR內啟動計時器50MS後在致能中斷。這樣就不會彈跳了
05/17 14:55, 5F

05/17 22:17, , 6F
加個電容就好了
05/17 22:17, 6F

05/18 01:54, , 7F
一顆電容要一塊錢,人家閒貴唒 f^^;;
05/18 01:54, 7F

05/30 11:24, , 8F
電容要用多大的? 我看書下很多用1uf 這樣就夠了嗎?
05/30 11:24, 8F

05/30 11:24, , 9F
05/30 11:24, 9F
文章代碼(AID): #1Bxsg8zc (ASM)
文章代碼(AID): #1Bxsg8zc (ASM)