因對硬體較為不熟悉
查了相關資料看到在Raspberry Pi用Python去做按鈕偵測大多是用RPi.GPIO 套件的add_event_detect來做
這邊有幾個問題想請教:
軟體中斷和硬體中斷我看得有點混亂, 目前的理解是: 軟體中斷是透過程式去不斷去查看GPIO變化(輪詢); 硬體中斷是外部裝置主動發出中斷訊號給CPU, 所以是CPU部分也有寫好類似軟體中斷的功能?
用add_event_detect來偵測GPIO腳位的電位變化, 這個應該是算軟體中斷對吧?
那Raspberry Pi是否可以做硬體中斷呢?
add_event_detect他是多久去偵測一次該GPIO腳位呢? 我試著想更改但找不到可設定參數的地方
如果有理解錯誤還請指正
謝謝
樹梅派一定是有硬體中斷的,不然沒辦法處理外部訊號。
1. 硬體中斷是外部裝置主動發出中斷訊號給 CPU,所以是 CPU 部分也有寫好類似軟體中斷的功能?
系統程式會設定好中斷向量表,等到中斷發生時再去查表並 Dispatch 給相對應的 Handler。
2. 我沒在玩樹梅派,但我認為這是硬體中斷而非軟體中斷,我猜想的流程大概是這樣:
GPIO 腳位接收狀態 -> 系統處理外部中斷 -> Handler 更新特定的 flag
軟體不斷檢測特定 flag。
3. 那 Raspberry Pi 是否可以做硬體中斷呢?
一定可以,不然那些裝著 Linux 的樹梅派該怎麼接收鍵盤訊號/讀寫記憶卡呢
4. add_event_detect 他是多久去偵測一次該 GPIO 腳位呢? 我試著想更改但找不到可設定參數的地方
我不知道,留給其他人解答