在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3291|回复: 6

[求助] 关于nios II中的中断问题

[复制链接]
发表于 2017-11-26 16:25:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在nios SBT中写了一个测试代码,用按键产生中断控制LED灯的亮灭,可是下载程序测试的时候总会出现几次按键没有正常响应的情况,即按一次灯无反应,按键消抖是用的FPGA硬件消抖,设置的应该没有问题,后再调试的时候发现在debug模式下,却表现的非常正常,按键无论怎么按都能正常效应到中断,为啥会出现这种情况?代码如下所示,请大家指点下!
#include <stdio.h>
#include <unistd.h>
#include "../inc/sopc.h"
#include "sys/alt_irq.h"
typedef struct
{

unsigned long int DATA;

unsigned long int DIRECTION;

unsigned long int INTERRUPT_MASK;

unsigned long int EDGE_CAPTURE;
}PIO_STR;
#define KEY_BASE 0x0
#define KEY_IRQ 1
#define LED ((PIO_STR *)PIO_LED_BASE)
#define KEY ((PIO_STR *)KEY_BASE)

volatile int key_flag = 0;

void ISR_key(void * context,unsigned long id){

key_flag = ~key_flag;
}
int init_key(void){

KEY->INTERRUPT_MASK = 1;

return alt_irq_register(KEY_IRQ,NULL,ISR_key);
}
void delay(){

int i,j;

for(i=0;i<1000;i++)

for(j=0;j<100;j++);
}
int main()
{
  printf("Hello from Nios II!\n");
  printf("int:%d\n",sizeof(int));
  printf("char:%d\n",sizeof(char));
  printf("short:%d\n",sizeof(short));
  printf("long:%d\n",sizeof(short));
  printf("short int:%d\n",sizeof(short int));
  printf("long int:%d\n",sizeof(long int));
  printf("long long:%d\n",sizeof(long long));
  printf("long long int:%d\n",sizeof(long long int));
  printf("double:%d\n",sizeof(double));
  printf("float:%d\n",sizeof(float));
  printf("signed long:%d\n",sizeof(signed long));
  printf("unsigned long:%d\n",sizeof(unsigned long));

  if(!init_key()){

  printf("register successfuly!\n");
  }
  else {

  printf("Error:register failure!\n");
  }
  while(1)
  {


  if(key_flag){

  LED->DATA = 1;

  }

  else{

  LED->DATA = 0;

  }
  }
  return 0;
}
发表于 2017-11-26 17:03:16 | 显示全部楼层
把所有的printf都comment掉,再重新编译试一下
 楼主| 发表于 2017-11-28 18:42:25 | 显示全部楼层
回复 2# 冲出藩篱
感谢帮助,还是一样,不正常
发表于 2017-11-29 22:09:51 | 显示全部楼层
采用的是沿中断还是电平中断,注意到中断处理函数没有清除中断操作
 楼主| 发表于 2017-12-6 20:23:17 | 显示全部楼层
回复 4# ydfq128
电平中断的
 楼主| 发表于 2018-1-5 17:33:57 | 显示全部楼层
回复 1# Jerry张
已经成功解决,感谢大家的帮助
发表于 2018-1-7 22:34:08 | 显示全部楼层
非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 09:04 , Processed in 0.019436 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表