AC620FPGA NIOS II學習筆記——按鍵控制
- github
- 簡介
- Quartus
- Eclipse
github
https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FPGA/class16_NIOSII_PIO
簡介
對PIO增加輸入方式,在eclipse中讀取按鍵狀态,控制4個led閃爍
Quartus
Bidir雙向IO口(輸入、輸出)用于到晶片引腳
内部若是想實作雙向IO需要使用 InOut
Output Register選項用于是否激活獨立控制單個IO口
Eclipse
代碼中的PIO_BASE 是在Quartus中的外設名字(就算寫的是小寫也會被轉成大寫)
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
int main()
{
alt_u8 led = 0;
alt_u8 key = 0;
IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_BASE,0x0f); //輸入輸出模式設定 1 輸出 0 輸入
/* Event loop never exits. */
while (1)
{
key = IORD_ALTERA_AVALON_PIO_DATA(PIO_BASE); //讀取IO電平狀态
if(key & 0x10)
{
led = 0x00;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,led); //設定IO電平狀态
}
else
{
led = 0x0f;
IOWR_ALTERA_AVALON_PIO_DATA(PIO_BASE,led);
}
}
return 0;
}