我想用10毫秒和1毫秒的定时器通过单一的UART发送和接收数据。如果设置了1ms的定时器标志,那么10 1ms的传输应该停止,而其他的应该启动,因为1ms的传输是紧急的。完成后,第一个应该恢复。如何在dspic33ep系列单片机中实现?
备注:Uart可用性受应用程序的限制。
发布于 2021-07-06 00:01:18
我建议在1千赫(即每毫秒)触发单个定时器中断。中断将设置一对全局信号量标志,指示(a)需要传输,(b)应该发生何种类型的传输。信号量应被宣布为易挥发的。
然后,您的主控制循环可以检查/轮询信号量,以确定是否是时候进行传输,以及所需的传输类型。注意,每个信号量只检查一次,因为它们的值在两个测试之间可能发生变化。您的控制回路还需要重置时间发送数据信号量.
此方法将有一些延迟(中断设置信号量和测试信号量的循环之间的定时)。
还有传输速度的问题。您将不得不使用相当高的波特率,以获得任何体面的数据传输的重复频率为1千赫。例如,在9600波特时,只需1ms就能传输一个字符。
https://stackoverflow.com/questions/68256430
复制相似问题