51uwb.cn

标题: 有关PWM输出时电压波峰时高时低问题 [打印本页]

作者: maybe0524    时间: 2020-4-14 10:36
标题: 有关PWM输出时电压波峰时高时低问题
本帖最后由 maybe0524 于 2020-4-14 10:45 编辑

我在基站上边移植FreeRTOS使得有多任务处理,我做了如下实验:
1. 只打开PWM输出时,电压峰值稳定
2. 同时打开PWM输出程序,和基站的程序,PWM会变得一会偏高(峰值到3V左右,需要波形图可以下次提供),一会正常(峰值2.8V)。

虽然这个电压波动不影响PWM的使用,但是还想问下有经验的人是怎么回事呢?

源码:https://github.com/maybe524/AIBR ... V1.1_16MHz_V1.3.git
分支:AIBRAIN_RTOS

作者: maybe0524    时间: 2020-4-14 15:43
我发现这个串口的打印还会影响到程序的稳定性?

while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR))) {};
// 比如在这里打印一个LOG,程序会一直在截图里边的地方转悠?
aibrain_dbug("step 5, send one frame, frame_seq_nb: %05d, TAG_ID: %d", frame_seq_nb, TAG_ID);
作者: tuzhuke    时间: 2020-4-14 20:57
maybe0524 发表于 2020-4-14 15:43
我发现这个串口的打印还会影响到程序的稳定性?

while (!((status_reg = dwt_read32bitreg(SYS_STATUS_I ...

你串口打印占用太多时间了
这个测距是一气呵成的,串口打印时候可能正好错过了接收信息。

测距过程调试尽量使用LED灯指示,测距完成可以用慢速设备打印
作者: tuzhuke    时间: 2020-4-14 21:01
与你另外问题一样

你移植到FreeRTOS,但是目前这个工程,测距过程不能打断,一定会出现问题。
建议你用我们另外一套开源框架做FreeRTOS移植。
http://51uwb.cn/forum.php?mod=vi ... &extra=page%3D1
作者: maybe0524    时间: 2020-4-15 10:25
多谢回复。我先尝试使用DMA的方式做个试验看看效果如何,在按照你的方式试试吧。
作者: maybe0524    时间: 2020-4-15 10:26
tuzhuke 发表于 2020-4-14 21:01
与你另外问题一样

你移植到FreeRTOS,但是目前这个工程,测距过程不能打断,一定会出现问题。

多谢回复。我先尝试使用DMA的方式做个试验看看效果如何,在按照你的方式试试吧。
不过话说PWM是硬件产生的,不用CPU参与,怎么会出现峰值变化呢?




欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3