请教TI工程师
关于组优先级函数 Interrupt_setPriorityGrouping(uint32_t bits) 如何使用,有无样例,其中这个uint32_t bits如何填写
如果针对有12个最优的中断 我需要分3组 具体大约如何实施写,谢谢。
如果小于等于8个中断 我直接用 下面的函数了,
Interrupt_setPriority(uint32_t interruptNumber, uint8_t priority)
priority:优先级别,例如0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xE0
但是现在实际是12个 因此需要分组,Interrupt_setPriorityGrouping(uint32_t bits) 如何使用 请指教
gaoyang9992006:
你可以定位到这个函数的头文件对应的c文件,里面在函数原型的前面有对参数的说明
gaoyang9992006:
也可以设置同一个优先级,也可以不修改,使用默认的。这个12种中断都需要优先级设置吗
Susan Yang:
是的,目前没有这方面的例程
您可以在下面的链接找到函数原型
void Interrupt_setPriorityGrouping ( uint32_tbits )
Sets the priority grouping of the interrupt controller.
Parameters
bits specifies the number of bits of preemptable priority.This function specifies the split between preemptable priority levels and sub-priority levels in the interrupt priority specification. The range of the grouping values are dependent upon the hardware implementation; on the MSP432 family, three bits are available for hardware interrupt prioritization and therefore priority grouping values of three through seven have the same effect.
Returns
None.dev.ti.com/…/group__interrupt__api.html
首先,对MSP32中断进行分组,组0~7(3到7是相同的)。同时,对每个中断设置一个抢占优先级和一个子优先级值。 分组配置是在寄存器AIRCR中配置。
高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。若是抢占优先级相同,则高的子优先级不可以打断低子优先级的中断。如果两个中断的抢占优先级和子优先级都是一样的话,则按照中断发生的时间来执行