LPC 2368 中断


LPC2368中断系统

1.32个中断源都对应中断控制器的每一位。
  中断的几个要点:
  1,使能中断。
  2,中断地址。
  3,清除中断。

2.软件中断寄存器。VICSoftInt
  通过软件设置对应的莫一位.来强制产生相应的中断。
 
3.软件中断清零寄存器:VICSoftIntClear
  通过对相应位写1.清除软件中断寄存器的莫位
 
4.原始中断状态寄存器(VICRawintr)
  这是一个只读存储器。当莫位为1是就说明,相应的硬件中断和软件中断产生了.
 
5.中断使能寄存器(VICIntEnable)
  当对应的莫位置1时就表示。对应的中断使能
 
6.中断清零寄存器(VICIntEnClear)
   当中断产生了,设置对应的位清除中断使能位中的相应的位
  
7.中断选择寄存器(VICIntSelect)
  设置对应的中断是FIQ还是IRQ中断
 
8.IRQ状态寄存器(VICIRQStatus)
  读出为1的位表示相应位的中断请求使能,分配为IRQ,并且有效

9.FIQ状态寄存器(VICFIQStatus)
  读出为1的位表示相应位的中断请求使能,分配为FIQ,并且有效

10.中断向量地址寄存器(VICVectAddr0-31)
   他主要存放的就是中断服务函数的地址。当对应的中断发生了就直接到相应的地址,进行执行。
  
11.向量优先级寄存器(VICVectPriority0-31)
   在lPC2368中有16个优先级。对对应的寄存器写入相应的值就可以设置它的优先级.数值越小优先级越大

12.向量地址寄存器(VICAddress)
   这个寄存器存储了:当前中断服务函数的地址。

13.软件优先级屏蔽寄存器(VICSWPriorityMask)
   当莫位为0时表示的是这个优先级的中断被屏蔽。当为1时表示的是优先级被屏蔽了。
  
14.实例分析:
   1.注册一个中断。(通常在进行设计中断的时候我们首先要注册一个中断。
   他包括的是:中断方式(IRQ,FIQ),中断使能,中断优先级,中断地址的设置)
   例如:
   DWORD InstallIRQ( BYTE IntNumber, void *HandlerAddr, BYTE Priority )
  {
  if ( IntNumber >= VIC_SIZE ) return ( FALSE );
  VICIntEnClr = 1 << IntNumber;    //关闭中断
  VICIntSelect &= ~(1<<IntNumber); // 设置对应通道为IRQ中断
  VICVectAddress(IntNumber) = (DWORD)HandlerAddr;//中断地址
  VICVectControl(IntNumber) = Priority;//中断优先级
  VICIntEnable = 1<< IntNumber;  // 使能中断
  return( TRUE );
  }
  
  

   

 
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值