7. PL 按鍵中斷實驗
- 前面的定時器中斷實驗的中斷屬於PS 內部的中斷
- 本實驗中斷來自 PL PS 最大可以 接收16 個來自 PL 的中斷信號,都是上升沿或高電平觸發
- 本實驗用按鍵中斷來控制 LED
工程建立
- 本實驗所用的 Vivado 工程只需要在“ ps_axi_led ”這個工程上添加用於按鍵輸入的 AXI GPIO 就可以
- 新的工程名爲“ ps_axi_key
- 添加一個 AXI GPIO
- 配置 GPIO 參數,都爲輸入,寬度爲 1 ,使能中斷
- 使用自動連接
- 再把端口名稱改爲 keys
- 配置 ZYNQ 處理器的中斷,勾選 IRQ_F2P
- 連接 ip2intc_irpt 到 IRQ_F2Q
- 修改 xdc 約束文件
- 保存 設計,編譯生成 bit 文件
下載調試
- 運行 SDK ,由於是從其他工程複製而來 SDK 下有很多我 們不需要的文件,全部刪除,然後關閉 SDK 重新運行
- 新建一個 APP
- 設置 Project name 爲“ key_test
- 程序編寫的情況下,我們儘量使用 SDK 自帶例程來修改
- 選擇“ xgpio_intr_tapp_example
- 導入例程以後有未定義的錯誤,我們需要修改部分代碼
- 修改 GPIO 和中斷號的宏定義
- 修改測試延時時間,讓我們有足夠的時間去按按鍵
- 打開串口終端,運行程序
- 如果一直不按按鍵,串口顯示“ No button pressed …””,如果按下 PL KEY1 按鍵 顯示“ Successfully ran Gpio Interrupt Tapp Example”