天嵌 ARM开发社区

 找回密码
 注册
查看: 3334|回复: 7

如何发出脉冲波形?

[复制链接]
ztt725 发表于 2013-3-25 15:13:21 | 显示全部楼层 |阅读模式
我想要一个高低电平的波形,这个波形先是0.4ms的156hz的波形,紧接着是0.4ms的312hz的波形,然后又是156hz……如此循环往复,有解决方案吗?
亚瑟王 发表于 2013-3-25 15:35:53 | 显示全部楼层
使用天嵌科技系列开发板的PWM就可以实现。
回复

使用道具 举报

 楼主| ztt725 发表于 2013-3-25 15:38:05 | 显示全部楼层
本帖最后由 ztt725 于 2013-3-25 15:50 编辑
亚瑟王 发表于 2013-3-25 15:35
使用天嵌科技系列开发板的PWM就可以实现。


PWM的话,怎么确定工作时间是0.4ms呢?用中断来计数吗?用中断的话又会用到线程,会涉及到优先级,就会出现时间片抢占现象,不能及时响应每个中断
回复

使用道具 举报

亚瑟王 发表于 2013-3-26 09:25:08 | 显示全部楼层
ztt725 发表于 2013-3-25 15:38
PWM的话,怎么确定工作时间是0.4ms呢?用中断来计数吗?用中断的话又会用到线程,会涉及到优先级,就会 ...

把整个设置频率和定时的过程都放在驱动中,就可以避免优先级的问题了。只要你不用应用程序来调用和设置,CPU的效率肯定是够的。
回复

使用道具 举报

billsmate333 发表于 2013-4-2 13:25:39 | 显示全部楼层
亚瑟王 发表于 2013-3-26 09:25
把整个设置频率和定时的过程都放在驱动中,就可以避免优先级的问题了。只要你不用应用程序来调用和设置, ...

0.4ms的定时怎么做?用QueryPerformanceTimer吗?
回复

使用道具 举报

亚瑟王 发表于 2013-4-2 18:47:12 | 显示全部楼层
billsmate333 发表于 2013-4-2 13:25
0.4ms的定时怎么做?用QueryPerformanceTimer吗?

在驱动中响应中的一般都有个线程。在这个线程中实现。
回复

使用道具 举报

billsmate333 发表于 2013-4-2 19:01:00 | 显示全部楼层
亚瑟王 发表于 2013-4-2 18:47
在驱动中响应中的一般都有个线程。在这个线程中实现。

IST对吧,关键是CE能做到0.4ms精确定时吗?误差多大呢?
回复

使用道具 举报

亚瑟王 发表于 2013-4-7 21:39:57 | 显示全部楼层
billsmate333 发表于 2013-4-2 19:01
IST对吧,关键是CE能做到0.4ms精确定时吗?误差多大呢?

亲,线程里面可以专门用来处理定时器中断的,然后级别设置高一些就可以了。如果不知道如何开中断和线程建议到网络上搜索一下方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-8-17 23:29 , Processed in 2.040459 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表