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.
器件型号:MSP432P401R
工具/软件:TI-RTOS
e2e.ti.com/.../2437.timer_5F00_hwi_5F00_priority_5F00_example.zip
大家好、
我正在项目中使用多个计时器、我想为每个计时器设置底层 HWI 的优先级。
考虑到我可以确定正在使用哪些计时器、我已成功使用 MSPWARE 直接设置中断优先级(例如 MAP_Interrupt_setPriority (INT_TA0_0、 4 << 5);) 、但这感觉就像我在围绕 SYSBIOS 执行结束运行。
如果可能、我认为我应该使用 SYSBIOS API。 实际上、TI-RTOS 驱动 程序提供了设置相关中断优先级的功能、因此我想为什么不使用计时器。
我的第一次尝试只是使用了 HAL 计时器、但这似乎不会暴露底层 HWI。
特定于器件的计时器模块(ti.sysbios.family.arm.msp432)看起来确实会暴露 HWI、因此我使用的是 HWI。 我尝试按如下方式设置优先级(请参阅随附的示例项目):
hwi_setPriority (timer_hndl->hwi->intNum、(~0));
当我编译此代码时、我收到错误"不允许指向不完整类类型的#395指针"。
在进入/sysbios/family/arm/msp432/Timer.h 的 TIMER_HNDL 类型定义之后、我继续了解 struct ti_SysBIOS_family_ARM_msp432_Timer_Object 的定义。
这是#defined out、它解释了编译错误、但它有点奇怪、我不确定如何修复它。
是否有人能够提供任何建议?
谢谢
Julian
尊敬的 Julian:
我认为您要做的是:
Timer_handle timer_hndl = NULL; Timer_Params timer_params; Error_Block timer_EB; Hwi_Params hwi_params; Error_init (&timer_EB); Timer_Params_init (&timer_params); Hwi_Params_init (&hwi_params); hwi_params.priority = 255; timer_params.hwiParams =&hwi_params; //其他计时器参数配置* timer_hnams = Timer_create (1、isr_timer、&timer_params);&timer_params
这将让您为计时器指定 Hwi 的优先级。
谢谢、
Gerardo