请教一个FREERTOS,IO口模拟输出波形被干扰发生畸变的问题
本人刚接触FREERTOS,用IO口模拟归零码(800KHZ),控制一串LED灯。归零码要求:
0、300ns高电平,900ns低电平;
1、900ns高电平,300ns低电平;
在波形输出过程中,我关闭了中断,但仍然不知道被什么进程影响到,导致波形畸变。
如图片所示,中间的几个高电平和低电平无辜加长。
1、这种精度的模拟,开个800KHz的中断做IO输出。同时将此中断设置为最高优先级,并且中断代码最好寄存器操作。貌似你的这个得开10MHz的中断,F4系列处理不了。
2、如果是任务里面执行是可以的,不过这段操作时间务必关中断。防止任何干扰。
3、用PWM+DMA方式,不知道你这个应用方便不。
最早就使用的中断,开了300ns一次的中断,但一进中断,系统就崩溃了,不断的重启 joy 发表于 2018-9-10 11:31
最早就使用的中断,开了300ns一次的中断,但一进中断,系统就崩溃了,不断的重启
楼上,重新编辑了回复。 这种方案最好是外挂一块CPLD 中断是关了的, 用的 cli()。
PWM+DMA没试过,我用的这款芯片没看到有DMA的内容。除中断外,我用了两种方式,一种是配置定时器时基计数器累加,然后读定时器时基计数器,进行延时;一种是加NOP;但都有这个问题,感觉某个地方没有被屏蔽掉,导致时序被干扰到了。 taobaofarmer 发表于 2018-9-10 11:36
这种方案最好是外挂一块CPLD
周末项目就要结束了,来不及改方案了 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
eric2013 发表于 2018-9-10 14:13
参考我这个,如果你是Cortex-M内核的话
http://www.armbbs.cn/forum.php?mod=viewthread&tid=89128 ...
谢谢您提供的参考! 本帖最后由 mcza30 于 2019-3-1 17:10 编辑
eric2013 发表于 2018-9-10 11:27
1、这种精度的模拟,开个800KHz的中断做IO输出。同时将此中断设置为最高优先级,并且中断代码最好寄存器操 ...
请教eric2013,在407时钟168MHz下freertos任务切换需要多少时间?
我用了2个同优先级任务,一个是触摸屏,一个是18b20显示,没有关中断,温度读出好像没有发现错误。
这样做有问题吗? 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 23:33 编辑
eric2013 发表于 2019-3-1 17:15
给18B20加上CRC校验,读出数据有错误可以直接丢弃。
基于V6的DS18B20带CRC校验参考例程
http://forum.a ...
谢谢eric2013
页:
[1]