joy 发表于 2018-9-10 11:25:19

请教一个FREERTOS,IO口模拟输出波形被干扰发生畸变的问题

本人刚接触FREERTOS,用IO口模拟归零码(800KHZ),控制一串LED灯。
归零码要求:
0、300ns高电平,900ns低电平;
1、900ns高电平,300ns低电平;
在波形输出过程中,我关闭了中断,但仍然不知道被什么进程影响到,导致波形畸变。
如图片所示,中间的几个高电平和低电平无辜加长。





eric2013 发表于 2018-9-10 11:27:42

1、这种精度的模拟,开个800KHz的中断做IO输出。同时将此中断设置为最高优先级,并且中断代码最好寄存器操作。貌似你的这个得开10MHz的中断,F4系列处理不了。
2、如果是任务里面执行是可以的,不过这段操作时间务必关中断。防止任何干扰。

3、用PWM+DMA方式,不知道你这个应用方便不。

joy 发表于 2018-9-10 11:31:39

最早就使用的中断,开了300ns一次的中断,但一进中断,系统就崩溃了,不断的重启

eric2013 发表于 2018-9-10 11:33:16

joy 发表于 2018-9-10 11:31
最早就使用的中断,开了300ns一次的中断,但一进中断,系统就崩溃了,不断的重启

楼上,重新编辑了回复。

taobaofarmer 发表于 2018-9-10 11:36:42

这种方案最好是外挂一块CPLD

joy 发表于 2018-9-10 11:41:27

中断是关了的, 用的 cli()。
PWM+DMA没试过,我用的这款芯片没看到有DMA的内容。除中断外,我用了两种方式,一种是配置定时器时基计数器累加,然后读定时器时基计数器,进行延时;一种是加NOP;但都有这个问题,感觉某个地方没有被屏蔽掉,导致时序被干扰到了。

joy 发表于 2018-9-10 11:46:05

taobaofarmer 发表于 2018-9-10 11:36
这种方案最好是外挂一块CPLD

周末项目就要结束了,来不及改方案了

eric2013 发表于 2018-9-10 14:13:07

joy 发表于 2018-9-10 11:41
中断是关了的, 用的 cli()。
PWM+DMA没试过,我用的这款芯片没看到有DMA的内容。除中断外,我用了两种方 ...

参考我这个,如果你是Cortex-M内核的话

http://www.armbbs.cn/forum.php?mod=viewthread&tid=89128&highlight=%BE%AB%C8%B7

joy 发表于 2018-9-10 14:28:09

eric2013 发表于 2018-9-10 14:13
参考我这个,如果你是Cortex-M内核的话

http://www.armbbs.cn/forum.php?mod=viewthread&tid=89128 ...

谢谢您提供的参考!

mcza30 发表于 2019-3-1 17:02:02

本帖最后由 mcza30 于 2019-3-1 17:10 编辑

eric2013 发表于 2018-9-10 11:27
1、这种精度的模拟,开个800KHz的中断做IO输出。同时将此中断设置为最高优先级,并且中断代码最好寄存器操 ...
请教eric2013,在407时钟168MHz下freertos任务切换需要多少时间?
我用了2个同优先级任务,一个是触摸屏,一个是18b20显示,没有关中断,温度读出好像没有发现错误。
这样做有问题吗?

eric2013 发表于 2019-3-1 17:15:45

mcza30 发表于 2019-3-1 17:02
请教eric2013,在407时钟168MHz下freertos任务切换需要多少时间?
我用了2个同优先级任务,一个是触摸屏 ...

给18B20加上CRC校验,读出数据有错误可以直接丢弃。
基于V6的DS18B20带CRC校验参考例程
http://www.armbbs.cn/forum.php?mod=viewthread&tid=89423&fromuid=58
(出处: 安富莱电子论坛)

切换时间的话,此贴
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1531&highlight=%CD%EA%B1%AC

mcza30 发表于 2019-3-1 20:10:55

本帖最后由 mcza30 于 2019-3-1 23:33 编辑

eric2013 发表于 2019-3-1 17:15
给18B20加上CRC校验,读出数据有错误可以直接丢弃。
基于V6的DS18B20带CRC校验参考例程
http://forum.a ...
谢谢eric2013
页: [1]
查看完整版本: 请教一个FREERTOS,IO口模拟输出波形被干扰发生畸变的问题