工具与软件:
您好!
我们需要能够停用所有其他中断、但只让一个中断有效。
很遗憾,调用 Hwip_disable (),然后调用 Hwip_enableInt (interruptNumber)不起作用。 我已经检查过、它们的工作方式不同。 当 HwiP_enableInt 直接使用 VIM 时、HwiP_disable 通过 CPSR 寄存器禁用中断。 不幸的是、这有点误导、因为人们可能会认为他们正在一起工作。
那么、我们如何实现这一点呢? 最好不要在 SDK 中为它修改任何内容。
背景:
要重新启动器件时、我们将关闭所有驱动程序、还需要手动驱动闪存的 RESET 引脚。 由于存在时序控制、我们将使用 ClockP_usleep ()函数获取 µs μ s 的确切等待时间以继续操作。 遗憾的是、我们正在使用一些第三方库、这些库还会启动某些实体、这些实体将触发一些中断、而它们在例程中将访问资源。 它们无法正确关闭、因为这不是由它们实现的。 因此、我们需要禁用中断、否则我们可能会获得数据中止、因为它们尝试访问已关闭的资源。 但是、当中断被禁用时、ClockP_usleep-function 有时不起作用、因为它需要 SysTick (在本例中为 HWTIMER8)才能正确计算。
此致
Felix