#define rUSBIRQ 13 //register 13

#define bmURESIRQ 0x08 //URESIRQ is bit4,bm means“bit mask”

unsigned char dum;

dum=rreg(rUSBIRQ); //read the register

dum=dum&—bmURESIRQ; //chear one bit

wreg(Rusbirq,dum); //write it back

由于SPI主控制器可通过写1来清除一个MAX3420E IRQ位,而写0则不改变其他寄存器位,因此,SPI主控制器可直接写入位屏蔽值以清除URESIRQ位。这样,上述代码中的最后三条语句便可由下面的单条语句所替代:

wreg(rUSBIRQ,bmURESIRQ);//1 cheras an IRQ bit,0 leaves it alone

◇ IEN位

14个MAX3420E中断的每一个都有相应的中断使能(IEN)位,IEN位和IRQ触发器输出进行“与”操作,可决定是否向INT引脚传送中断请求。14个IRQ触发器通过门控电路后再进行“或”操作,也会形成一个内部中断请求信号,并传送至中断引脚逻辑模块。

实际上,无论IEN位的状态如何,IRQ位都指示中断悬挂状态,这样,即使中断不触发INT引脚,固件仍可以检查该悬挂中断,如果您的程序需要检查一个IRQ寄存器“是否悬挂中断”,比较简单的方法是读取IRQ和IEN寄存器,并对它们进行“与”操作,然后检查“等待和被使能的IRQ”位,零值表示没有使能的中断,系统处于悬挂状态。

◇ IE位

SIP主控制器通过IE位来使能或者禁止INT引脚,由于该位影响到所有的中断,因此通常称之为全局中断使能,不论IRQ或者IEN位的状态如何,当IE为0时,INT引脚均无效。

可用两个寄存器位INTLEVEL(参考下面的讨论)和POSINT来控制INT引脚的工作方式,在设置IE为1之间,应先设置这两个配置位。其操作如下:

MAX3420E与SPI主控制器构成USB外设器件的中断系统分析

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查