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

📄 5030102ea693001d12cdeb81c1505ea9

📁 在开发FPGA上比较有用
💻
字号:
/**************************************************************
程序说明      :好声波处理实验
类    型      :Nios II
说    明      :
              检测超声波输入的数据,触发中断,点亮相应的LED。
**************************************************************/
#include <stdio.h>
#include <io.h>
#include <system.h>
#include <stdio.h>
/*********************************************
函数名:button_irq
功  能:button中断处理函数
输  入:context:相关内容指针,中断号
返  回: 
备  注:
      读取相应BUTTON数据,点亮相应LED
**********************************************/
void  button_irq(void *context,alt_u32 interrupt)
{
  int iRet;
  unsigned int data;
  unsigned int seg;
  int flag_chaosb;
  /* 开放4BIT BUTTON的中断屏蔽 */
  //IOWR(CHAOSB_IRQ_PIO_BASE,0x02,0x0f);
  /* 读取边沿捕获寄存器值 */
  data=IORD(CHAOSB_IRQ_PIO_BASE,0x03);
//  IOWR(CHAOSB_IRQ_PIO_BASE,0x03,0x00);
  if(data!=1)
  {
  switch (data)
     {
        case  8:  printf("前方有人,注意慢行!");//aic23_play(3002); break;
        case  2:  printf("1米有障碍!");     aic23_play(3016);    break;
        case  3:  printf("1.5米有障碍!");   aic23_play(3017);    break;
        case  4:  printf("2米有障碍!");     aic23_play(3018);    break;
        case  5:  printf("2.5米有障碍!");  // aic23_play(3019);  
          break;
        case  6:  printf("3米有障碍!");     aic23_play(3020);   break;
        case  7:  printf("3.5米有障碍!");   aic23_play(3021);    break;
        default:  printf("3米有障碍!");    // aic23_play(3002);   break;
     }
  }
     else 
     {
        printf("没有障碍物");

     }
  
  /* 点亮相应的LED */
  IOWR(LED_PIO_BASE,0x00,data);
  IOWR(SERIAL_SEGMENT_0_BASE, 0x03,data);
  IOWR(CHAOSB_IRQ_PIO_BASE,0x03,0x00);
  
// return flag_chaosb;
}



int holdback()
{
  unsigned int data;
  unsigned int data1;
  int button_irq();
  int i;
  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;
  }*/
  if (alt_irq_register(CHAOSB_IRQ_PIO_IRQ, NULL,NULL))
  {
    button_irq();
  }
 
return 0;
}

⌨️ 快捷键说明

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