⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pio外部中断.txt

📁 nios范例(含源代码)
💻 TXT
字号:
#include <stdio.h>
#include <string.h>
#include "altera_avalon_pio_regs.h"
#include "system.h"
#include"sys/alt_irq.h"
#include"priv/alt_busy_sleep.h"
//#define LEDCON 0xff
//#define KEYCON 0xff
//中断服务子程序
static void keydown_interrupts(void* context, int id)
  {
    char get;
    get=IORD_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE);
    IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0);
    IOWR_ALTERA_AVALON_PIO_DATA(SEVEN_SEG_PIO_BASE,get);
    printf("button interrupt is occed:%d\n",get);   
  }
//中断初始化
void init_pio(void)
  {
    //初始化输入,输出('1'out,'0'in)
    IOWR_ALTERA_AVALON_PIO_DIRECTION(SEVEN_SEG_PIO_BASE,0xff);
    IOWR_ALTERA_AVALON_PIO_DIRECTION(BUTTON_PIO_BASE,0x00);
    //打开中断('1'中断使能)
    IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTON_PIO_BASE,0xff);
    //清边沿捕捉寄存器
    IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE,0x00);
    //注册中断服务程序
    alt_irq_register(BUTTON_PIO_IRQ,NULL,keydown_interrupts);
  }
  
int main(void)
{
  init_pio();
  for(;;);
  return(0);
}
  
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -