Joe*_*ath 4 c arm stm32 stm32f4discovery
我正在为一个项目使用 STM32F4 探索板,我想知道我是否正确地解决了这个问题。当我按下一个按钮时,会触发一个运行例程的外部中断;不使用延迟,这部分工作正常。当例程移动伺服器然后将其返回到其原始位置时,会添加一个延迟,以允许伺服器在返回到原始位置之前赶上新的 PWM 输出。当我运行带有延迟的新中断例程时,电路板锁定。在调试中,代码似乎在延迟循环中停滞。
延迟是一个简单的 sysstick 例程。把它放在我的中断中是不好的做法(因此是我崩溃的原因),我应该使用不同的方法吗?例如,在外部中断程序中设置一个一次性定时器,在设定的时间后返回伺服?
谢谢!
正如您所发现的,中断例程旨在快速处理外部事件,并将额外的工作推迟到其他设施。这就是为什么在您的情况下,延迟循环会导致电路板锁定:当代码在中断处理程序中休眠时,没有其他工作正在执行。这是所有中断处理程序的典型特征。
如果您需要执行单独的任务(再次移动伺服),请按照您的描述进行安排:
| 归档时间: |
|
| 查看次数: |
5043 次 |
| 最近记录: |