會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
資深會員
註冊日期:
2006/04/17 11:12
所屬群組:
註冊會員
文章: 591
等級: 22; EXP: 29
HP : 0 / 532
MP : 197 / 16900
離線
大家好:

之前 Input Change 這個功能還沒有出來之前都是外部中斷腳設正負緣觸發中斷,後來發現 PIC 開始有 Input Change Notification 這個功能,也就是可以直接在 I/O 設正負緣觸發,也可以進中斷,但這樣一來豈不是和外部中斷的功能一樣了?既然這樣,那何不都用 Input Change 取代外部中斷不就好了。

不知道 Input Change 和外部中斷也和差異以及適合的使用場合為哪些,還請先進大德們釋疑,謝謝。

2016/09/14 11:03
轉換PDF檔 列印


Re: 請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 13845
等級: 72; EXP: 2
HP : 1065 / 1775
MP : 4615 / 66564
離線
1. Pin Interrupt 一般簡稱 INT : 在較新的 PIC 可以設定上升緣或下降緣來觸發,一但設定好觸發狀態準位之後就直接使用。

2. 為擴展一些低功耗及 Sleep Mode 的使用,可以用比較多的 CN 腳位做睡眠模式下的按鍵偵測 (有按鍵即刻喚醒 PIC 做建盤掃描...等)。CN 有個點可以單獨設定使用 Low to Hi 或 Hi to Low 的變化時產生中斷,也可設定只要有 Level 的改變就發生中斷,看起來功能上是比 INT 強了一點。

所以兩者之功能幾乎相似,就看你喜歡要用誰。

2016/09/14 12:09
轉換PDF檔 列印


Re: 請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 903
等級: 26; EXP: 82
HP : 0 / 645
MP : 301 / 18353
離線
觀念上與實作上的差異...

External Interrupt 和 Input Change
在觀念上兩者都是 "中斷"....

在實作上,可能有差異/也可能無差異...

在高規格的架構中, External Interrupt
通常是個別獨立中斷的向量,反應快時間短...

全部Input Change可能共用同一個中斷,
反應較慢時間會拉長.(如果中斷程式沒寫好,
有可能漏處理 同時 pin change情形..)

2016/09/14 12:25
_________________
程式是
依照寫出來(的code),跑出結果
不是依照你想出來的,得到結果

先有需求規格 後有解決方案
轉換PDF檔 列印


Re: 請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
資深會員
註冊日期:
2006/04/17 11:12
所屬群組:
註冊會員
文章: 591
等級: 22; EXP: 29
HP : 0 / 532
MP : 197 / 16900
離線
用了 PIC32MM0016GPL020 寫一段測試程式來觀察 ICN 中斷動作,
以下是根據手冊中的 TABLE 9-1:CHANGE NOTIFICATION EVENT OPTIONS 表來設定觸發形式與腳位:

//--設定觸發形式與腳位negative transition
CNCONBbits.CNSTYLE=1;
CNEN1Bbits.CNIE1B9=1; // Pin : RB9
CNEN0Bbits.CNIE0B9=1; // Pin : RB9
CNFBbits.CNFB9=0; // Pin : RB9

上面的 Code 是 MCC 產生的,對負緣信號會觸發並且進中斷,但發現有 2 個現象:

(1)進中斷時除了清除 ICN 本身中斷旗號外,也會清除這個旗號 CNFBbits.CNFB9,我查不到 CNFB 是什麼暫存器,請問有人知道嗎?

(2)輸入 50Hz 的方波來觀察觸發情形,大部分時間都可以觀察到在負緣被觸發,但有時候會突然 Lost 掉然後就沒有再也不會被觸發了,即使將中斷優先權設到最高也一樣。

結論:這種電平改變觸發可能不適合用在頻率快的場合,很可能一次捕捉不到就再也捕捉不到往後的事件,比較適合用在例如從待機狀態喚醒的觸發,因為若用手動去觸發都能很穩定的改變。

2016/10/17 10:30
轉換PDF檔 列印


Re: 請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 13845
等級: 72; EXP: 2
HP : 1065 / 1775
MP : 4615 / 66564
離線
是問一下,中斷程式裡花了多久時間在執行中斷程式。測一下執行時間,這是最大的瓶頸所在。

如果在 CN 中斷裡只 Taggle LED 的話看看可以多快。

2016/10/18 11:08
轉換PDF檔 列印


Re: 請問 External Interrupt 和 Input Change Notification 有什麼不一樣?
資深會員
註冊日期:
2006/04/17 11:12
所屬群組:
註冊會員
文章: 591
等級: 22; EXP: 29
HP : 0 / 532
MP : 197 / 16900
離線

//  Input Change中斷函數
void __attribute__((vector(_CHANGE_NOTICE_B_VECTOR),interrupt(IPL1SOFT)))_CHANGE_NOTICE_B(void){
  
IFS0bits.CNBIF = 0;
  
PORTBbits.RB8^=1;    //Toggle IO
  
if(CNFBbits.CNFB9 == 1){  //這一段不知道是什麼意思?
     
CNFBbits.CNFB9 = 0;
     
// Add handler code here for Pin - RB9
  
}
}

PO 一下我的中斷函數,開頭先清除中斷旗號,然後 Toggle IO,再清除一個 CNFB9 旗號,不知道這旗號是什麼作用,但如果不清除它,則不會反覆進入中斷。

2016/10/18 15:11
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
線上教學影片
網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088221 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project