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

📄 holdback.c

📁 在开发FPGA上比较有用
💻 C
字号:
/**************************************************************
程序说明      :好声波处理实验
类    型      :Nios II
说    明      :
              检测超声波输入的数据,触发中断,点亮相应的LED。
**************************************************************/
#include <stdio.h>
#include <io.h>
#include <system.h>
#include <stdio.h>
#include "alt_types.h"
#include "sys/alt_irq.h"
#include <alt_types.h>
/*********************************************
函数名:button_irq
功  能:button中断处理函数
输  入:context:相关内容指针,中断号
返  回: 
备  注:
      读取相应BUTTON数据,点亮相应LED
**********************************************/
int  button_irq(void *context,alt_u32 interrupt)
{
  int iRet;
  unsigned int data;
  unsigned int seg;
  alt_u8 key;
  int flag_chaosb;
  
  
  
  
  /* 读取边沿捕获寄存器值 */
  data=IORD(CHAOSB_IRQ_PIO_BASE,0x03);
//  IOWR(CHAOSB_IRQ_PIO_BASE,0x03,0x00);
//alt_irq_disable_all();

  switch (data)
     {
       
                  
        case  2:  printf("1米有障碍!\n");      aic23_play(3016);    
                  break;
        case  3:  printf("1.5米有障碍!\n");    aic23_play(2001); 
                  break;
        case  4:  printf("2米有障碍!\n");      aic23_play(2002);    
                  break;
        case  5:  printf("2.5米有障碍!\n");    aic23_play(2003);  
                  break;
        case  6:  printf("3米有障碍!\n");      aic23_play(2004); 
                  break;
        case  7:  printf("3.5米有障碍!\n");    aic23_play(2005); 
                  break;
        case  8:  printf("前方有人,注意慢行!\n");  aic23_play(3024); 
                  break;
        default:  printf("没有障碍!");   // aic23_play(1004);
                  break;
     }
 
  
  /* 点亮相应的LED */
  IOWR(LED_PIO_BASE,0x00,data);
  IOWR(SERIAL_SEGMENT_0_BASE, 0x03,data);
  IOWR(CHAOSB_IRQ_PIO_BASE,0x03,0x00);
 // alt_irq_enable_all();
// return flag_chaosb;
return 0;
}



int holdback()
{
  unsigned int data;
  unsigned int data1;
  int button_irq();
  int i;
  alt_u8 key;
  printf("超声波检测试验!\n");
  
  /* 数码管清0 */
  IOWR(SERIAL_SEGMENT_0_BASE, 0x00,0);
  IOWR(SERIAL_SEGMENT_0_BASE, 0x01,0);
  IOWR(SERIAL_SEGMENT_0_BASE, 0x02,0);
  IOWR(SERIAL_SEGMENT_0_BASE, 0x03,0);
  
  

  /* 开放4BIT BUTTON的中断屏蔽 */
  IOWR(CHAOSB_IRQ_PIO_BASE,0x02,0x0f);
  
  /* 清除边沿捕获寄存器 */
  IOWR(CHAOSB_IRQ_PIO_BASE,0x03,0x00);
  
  /* 注册中断处理函数 */   
  if (alt_irq_register(CHAOSB_IRQ_PIO_IRQ, NULL,button_irq))
   {
    printf("alt_irq_register error\n");
    return -1;
   }

 
return 0;
}

⌨️ 快捷键说明

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