MCU_fans 发表于 2010-7-14 20:57:08

nios ii中断问题

#include "../inc/sopc.h"
#include "system.h"
#include "sys/alt_irq.h"
#include <unistd.h>
#include <stdio.h>


int key_flag = 0;

void ISR_key(void * context,unsigned long id)
{
    key_flag = ~key_flag;      
}

int init_key(void)
{
    KEY->INTERRUPT_MASK = 1;//允许中断
    KEY->EDGE_CAPTURE = 0;
   
    returnalt_irq_register(KEY_IRQ,NULL,ISR_key);   //中断注册成功返回1   
}

int main()
{
    if(!init_key())
    {
      printf("register successfully!\n");
    }
    else{
      printf("Error: register failure!\n");
    }
   
    while(1)
    {
      if(key_flag)
      {
            LED->DATA = 1;
      }
      else
      {
            LED->DATA =0;
      }
    }
   
    return 0;
}





这中断初始化中的   KEY->EDGE_CAPTURE = 0;   是干吗用的?
void ISR_key(void * context,unsigned long id)
中断函数中的void * context,unsigned long id的值是在哪里赋给他的?



初学nios ii请高手指教,不胜感激!!

MCU_fans 发表于 2010-7-14 20:58:48

补充下 context 跟 id的值有什么用?
页: [1]
查看完整版本: nios ii中断问题