韦东山的hardware文件下的adc_ts中的interrupt.c,看不懂

2019-07-16 08:25发布

  1. void (*isr_handle_array[50])(void);

  2. void Dummy_isr(void)
  3. {
  4.     while(1);
  5. }

  6. void init_irq(void)
  7. {
  8.     int i = 0;
  9.     for (i = 0; i < sizeof(isr_handle_array) / sizeof(isr_handle_array[0]); i++)
  10.     {
  11.         isr_handle_array[i] = Dummy_isr;
  12.     }

  13.     INTMOD = 0x0;              // 所有中断都设为IRQ模式
  14.     INTMSK = BIT_ALLMSK;  // 先屏蔽所有中断

  15. //        isr_handle_array[ISR_IIC_OFT]  = I2CIntHandle;
  16. }

  17. void IRQ_Handle(void)
  18. {
  19.         unsigned long oft = INTOFFSET;
  20.    
  21.         //清中断
  22.         if (oft == 4)
  23.         EINTPEND = 1<<7;    //EINT4-7合用IRQ4,注意EINTPEND[3:0]保留未用,向这些位写入1可能导致未知结果
  24.         SRCPND = 1<<oft;        
  25.         INTPND = INTPND;         

  26.     /* 调用中断服务程序 */
  27.     isr_handle_array[oft]();
  28. }
复制代码在使用init_irq函数是要调用Dummy_isr函数,而事实上Dummy_isr为循环函数,没有对数组指针isr_handle_array进行操作啊。。。我不知道该咋理解这点,请大神解释一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
zhifubao
1楼-- · 2019-07-16 11:04
Dummy的意思是虚拟的假的,所以这个只是用来测试的。

一周热门 更多>