ARM技术论坛
直播中

秋韶

10年用户 47经验值
擅长:嵌入式技术
私信 关注
[问答]

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

  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<
  25.         INTPND = INTPND;         

  26.     /* 调用中断服务程序 */
  27.     isr_handle_array[oft]();
  28. }
在使用init_irq函数是要调用Dummy_isr函数,而事实上Dummy_isr为循环函数,没有对数组指针isr_handle_array进行操作啊。。。我不知道该咋理解这点,请大神解释一下。
已退回10积分

回帖(1)

h1654155956.5608

2016-8-25 09:14:19
Dummy的意思是虚拟的假的,所以这个只是用来测试的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分