【发布时间】:2015-03-12 05:06:58
【问题描述】:
我正在 TI CC2541 BLE 芯片内编程和 8051。定时器中断回调和事件循环上执行的事件之间的优先级如何处理?
我使用 timer1 中断读取 i2c 的原因是因为我想每 10 毫秒采样一次,而事件循环不能保证我的时间段(在传感器标签示例代码中,i2c 是从事件中读取的)循环)。
【问题讨论】:
标签: bluetooth-lowenergy 8051 texas-instruments
我正在 TI CC2541 BLE 芯片内编程和 8051。定时器中断回调和事件循环上执行的事件之间的优先级如何处理?
我使用 timer1 中断读取 i2c 的原因是因为我想每 10 毫秒采样一次,而事件循环不能保证我的时间段(在传感器标签示例代码中,i2c 是从事件中读取的)循环)。
【问题讨论】:
标签: bluetooth-lowenergy 8051 texas-instruments
答案是:这取决于您如何设置系统。
场景 1)
“事件循环”是“正常”循环,它始终检查要做什么(轮询)。
定时器中断在启动期间被初始化并且永远不会被禁用。
-> 定时器中断的优先级高于“事件循环”
场景 2)
“事件循环”是“正常”循环,它始终检查要做什么(轮询)。
定时器中断在启动期间被初始化。事件循环在某些重要操作期间禁用定时器中断。
-> 定时器中断比“事件循环”中的普通代码具有更高的优先级。它的优先级低于事件循环的“重要操作”。
【讨论】: