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

📄 1位按键的控制程序.c

📁 Altera FPGA工程师成长手册源文件清华大学
💻 C
字号:
#include "system.h"                                       //key1_cpu硬件信息描述
#include "altera_avalon_pio_regs.h"                        //PIO内核硬件信息描述
#include "sys/alt_irq.h "                                   //中断访问文件
#include "alt_types.h"                                     //定义数据类型
volatile alt_u32 edge_capture;                               //声明存储捕获寄存器内容的变量
Static void key1_interrupts(void* context,alt_u32 id)            //声明存储捕获寄存器内容的变量
{
  volatile alt_u32* edge_capture_ptr=(volatile alt_u32*) context;
  *edge_capture_ptr=IORD_ALTERA_AVALON_PIO_EDGE_CAP(KEY1_PIO_BASE); //存储边沿捕获寄存器内容
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY1_PIO_BASE,0); //边沿捕获寄存器清零
}
static viod init_button_pio()                                    //按键初始化函数
{
 Void*edge_capture_ptr=(void*)&edge_capture;
 IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY1_PIO_BASE,0xf); //开始按键中断
   IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY1_PIO_BASE,0x0);  //边沿捕获寄存器清零
   Alt_irq_register(KEY_PIO_IRQ,edge_capture_ptr,key1_interrupts);     //注册中断服务函数
 }
int main(void)                                                //主函数
{
   Atl_u8 count,seg_code;                                    //声明按键数据和显示代码变量
   Alt_u8 code_table[]={0x40.0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,
0x06,0x0e,0x0c,0x18,0x09,0x3f};         //7段共阳极数码管显示代码表
Init_botton_pio();                                         //按键初始化
IOWR_ALTERA_AVALON_PIO_DATA(SEG7_PIO_BASE,code_table[0x0f]);
                                                            //输出初始化显示代码:“F”
while(1)
{
       while(edge_capture)                                  //判断按键是否被按下
       {
          Edge_capture=0;                              //存储器捕获寄存器内容的变量清零
          If (count<0x0f)
{ count++;}
else
{count=0;}
Seg_code=code_table[count];                       //产生当前数据显示代码
          IOWR_ALTERA_AVALON_PIO_DATA(SEG7_PIO_BASE,seg_code;
                           //输出当前数据显示代码
}
}
return 0;
}

⌨️ 快捷键说明

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