问题一:
我在使用RegisterTimer(100, watchActionList, this);时,创建定时器组件如下:
_timer_create_component(TIMER_DEFAULT_TASK_PRIORITY, Timer_Stack_Size);
其中,TIMER_DEFAULT_TASK_PRIORITY为1,;
另外,我在BSP中定义定时器PIT0~3的优先级,如下:
#define BSP_PIT0_INT_LEVEL (5)
请问,我使用的定时器中断优先级,是1,还是5?
问题二:
请问,MQX中,互斥器的优先级默认为多少?能配置吗?
案例分析:
CAN收发时,我用互斥器包裹,目的是不让其他任务切断CAN的收发。
但是,结果发现如下情况:
300ms时:发送CAN命令;(设置的等待时间为20ms)
301ms时:定时器中断执行;
320ms时:定时器中断结束;
321ms时:接收CAN命令超时;
感觉是,尽管互斥器包裹了CAN收发,但是定时器中断将CAN收发打断了,
从而导致CAN接收超时。所以,有了“问题一”和“问题二”!
【各位大侠,请指导下……不胜感激!!!】
Best wishes |