AC620FPGA NIOS II学习笔记——按键控制

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

AC620FPGA NIOS II学习笔记——按键控制_第1张图片
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;
}

你可能感兴趣的:(FPGA学习笔记)