微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 韦东山的hardware文件下的adc_ts中的interrupt.c,看不懂

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

时间:10-02 整理:3721RD 点击:

  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进行操作啊。我不知道该咋理解这点,请大神解释一下。

Dummy的意思是虚拟的假的,所以这个只是用来测试的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top