搜索
bottom↓
回复: 0

求教 复位后与初次下载程序结果不一致的问题

[复制链接]

出0入0汤圆

发表于 2013-9-6 17:49:44 | 显示全部楼层 |阅读模式
      写了一段测试边沿触发的NIOS的程序,第一次下进去是正常的,按键复位后就无法从注册中断中出来了。

    下面是代码和控制台输出。
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include "system.h"
  4. #include "../inc/led.h"
  5. #include "sys/alt_irq.h"
  6. #include <alt_types.h>
  7. #include "altera_avalon_pio_regs.h"

  8. int key_flag=0;

  9. void ISR_key(void *contxt,unsigned long id);
  10. int init_key(void);

  11. int main()
  12. {
  13.    
  14.   printf("\n");
  15.   printf("Hello from Nios ! +1 \n");
  16.   
  17.   usleep(5000);
  18.   
  19.   KEY ->INTERRUPT_MASK=0;
  20.   printf("hello +2 \n");

  21.   if(!init_key())
  22.   {
  23.      printf("register successfully!\n");
  24.   }
  25.   else
  26.   {
  27.     printf("register fail!\n");
  28.   }
  29.   
  30.   printf("end Nios init\n");
  31.   
  32.     while(1)
  33.         {
  34.            
  35.          /*   int i;
  36.             for(i=0;i<4;i++)
  37.                 {
  38.                     LED -> DATA = 1<<i;
  39.                     usleep(500000);
  40.                
  41.                 }
  42.           */      
  43.             if(key_flag)    LED->DATA =1;
  44.             else            LED->DATA =0;
  45.         usleep(5000);
  46.         }
  47.   
  48.   
  49.   return 0;
  50. }


  51. void ISR_key(void *contxt,unsigned long id)
  52. {
  53.     KEY->EDGE_CAPTURE=0;
  54.     key_flag =(KEY->DATA)& 0x01;//~key_flag;
  55.     KEY->EDGE_CAPTURE=0;
  56.     // printf("run into interrupt");
  57.     //printf("%d\n",key_flag);
  58.     //IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE, 0);
  59. }

  60. int init_key(void)
  61. {

  62.     // KEY ->INTERRUPT_MASK=1;
  63.     // KEY->EDGE_CAPTURE=0;
  64.      IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY_BASE,1);
  65.      IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BASE, 0);
  66.      return (alt_irq_register(KEY_IRQ,NULL,ISR_key));
  67.     //KEY ->INTERRUPT_MASK=1;
  68.     //KEY->EDGE_CAPTURE=0;
  69. }
复制代码
  1. Hello from Nios ! +1
  2. hello +2
  3. register successfully!
  4. end Nios init

  5. Hello from Nios ! +1
  6. hello +2
复制代码
复位前打印四行信息,复位后就没法正常运行了,求教

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表