LPC1700中断系统详解:中断使能与清零寄存器

需积分: 31 34 下载量 21 浏览量 更新于2024-08-10 收藏 16.69MB PDF 举报
"LPC1700系列微控制器的中断管理机制" 在LPC1700系列微控制器中,中断管理系统是处理器与外部设备通信的关键部分,它允许处理器在执行其他任务的同时处理突发事件。中断使能寄存器和中断清零寄存器是中断管理系统的重要组成部分。 中断使能寄存器(IntEnable-0x5000 0FE4)是用来控制各个中断源是否可以触发中断的关键寄存器。表10.48列出了该寄存器的位描述: 1. RxOverrunIntEn(接收缓冲区溢出或描述符下溢中断使能):当接收缓冲区发生溢出或者描述符下溢时,如果此位设为1,则会触发中断。 2. RxErrorIntEn(接收错误中断使能):如果接收过程中出现错误,比如CRC错误等,此位设为1则会触发中断。 3. RxFinishedIntEn(接收完成中断使能):当所有接收描述符完成且ProduceIndex等于ConsumeIndex时,若此位设为1,中断被触发。 4. RxDoneIntEn(接收完成中断使能):当一个接收描述符处理完成并且其控制区域的中断标志位被置位时,此位设为1会触发中断。 5. TxUnderrunIntEn(发送缓冲区或描述符下溢中断使能):在发送过程中发生下溢时,若此位设为1,中断被触发。 6. TxErrorIntEn(发送错误中断使能):发送错误,如CRC错误,若此位设为1,则触发中断。 7. TxFinishedIntEn(发送完成中断使能):所有发送描述符处理完毕,满足ProduceIndex等于ConsumeIndex条件时,此位设为1会触发中断。 8. TxDoneIntEn(发送完成中断使能):描述符发送完成并设置中断标志位时,此位设为1触发中断。 9. SoftIntEn(软件中断使能):通过设置IntStatus寄存器的SoftInt位可以触发中断。 10. WakeupIntEn(唤醒中断使能):当接收过滤器检测到唤醒事件时,若此位设为1,中断会被触发。 中断清零寄存器(IntClear-0x5000 0FE8)是一个只写的寄存器,用于清除中断状态。表10.49描述了该寄存器的位功能: 1. RxOverrunIntClr、RxErrorIntClr、RxFinishedIntClr、RxDoneIntClr、TxUnderrunIntClr、TxErrorIntClr、TxFinishedIntClr和TxDoneIntClr:这些位对应于中断使能寄存器中的相应位。向其中任一位写入1,会将中断状态寄存器IntStatus中的对应位清零,从而停止中断的发生。 2. SoftIntClr:写入1可以清除IntStatus寄存器中的SoftInt位,从而取消软件中断。 3. WakeupIntClr:写入1可以清除IntStatus寄存器中的唤醒中断状态位。 中断管理系统使得LPC1700能够高效地响应不同事件,通过设置中断使能寄存器中的位,可以开启或关闭特定中断源。而中断清零寄存器则允许在中断处理完成后,主动清除中断状态,以避免不必要的中断再次触发。这种机制在实时系统和多任务环境中尤为重要,因为它确保了处理器能及时、有效地处理各种硬件事件。