This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我已经广泛阅读过这些论坛以及有关中断的用户指南(sprugl8c.pdf)、但无法找到在 Lab11d 中触发稳定周期性 ISR 的解决方案。 控制套件有很多信息、但除了下面 提到的 timer.c 之外、MOTORWARE 没有具体示例。
我要尝试的是在大约10毫秒的时间内触发一个较低优先级的 ISR、这不会干扰 实验11d 的 motor1_ISR 和 motor2_ISR 的执行。 我尝试使用包含 的 timer0ISR 来完成此操作、但这5ms 周期似乎会导致其他2个 ISR 的时序问题-我认为这是因为它链接到 TINT0中断、该中断的优先级高于使用的 ADC1和 ADC2中断 默认情况下触发 motor1_ISR 和 motor2_ISR。
我想知道的是-您能告诉我是否以及如何将 TINT0的优先级更改为低于 ADC1和 ADC2 -或者用 ADC3替代 Tinto (我尝试过此操作、但无法通过修改 hal_2mtr.c 成功触发 ADC3中断)我知道、默认情况下、该中断的优先级应低于 ADC1和 ADC2。 我认为这可以解决时序问题是正确的吗? 您能否给我举一个具体例子、说明在汽车设备中执行此操作?
提前感谢!
Steven
Steven、
如果您查看 PIE 表、您将看到可以将 ADCINT1和 ADCINT2中断映射到比 TINT0更高的优先级(1.1和1.2与1.7)。 在 Motorware 中完成此操作的方法是更改 HAL_enableAdcInts()中的某些代码行
这应该是将 motor1_ISR 和 motor2_ISR 映射到饼图可能的最高优先级的步骤
肖恩