返回信息流最近在用ARM2410做一个波形发生器,我想采用timer中断的方式来实现波形频率的控制,就是来一个timer中断就送一个数据到DAC0832去做数模转换。我做了一个正弦波的程序,每个周期送60个频率值。但是当正弦波的频率达到3.5K以上,也就是向DAC0832每秒送210K个数据的时候,从示波器上看正弦波频率只有1.8K。
我分析了一下可能有两个原因,一个是由于采用中断,需要入栈出栈,浪费了时间,导致在每两个时钟中断间隔内做不完所有的事。第二个是DA转换速率不够,但是DAC0832转换时间是1us,理论上是足够的。
希望哪位同学给解释一下到底是什么原因。或者有什么更好的方式来控制频率(不采用timer中断),希望告知。这里先谢了[em20]
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5348同步于 2009/7/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
[菜鸟求助]关于ARM2410
xiaohaidao
2009/7/13镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
微控制器不适合做这样的精确的东西,建议使用FPGA做这块,ARM控制FPGA。
即使你输出的是看上去的3.5KHz,你用频谱仪看看就知道杂波有多少了,因为程序会因为这样那样的原因导致输出时钟的不精确
【 在 proakis 的大作中提到: 】
: 微控制器不适合做这样的精确的东西,建议使用FPGA做这块,ARM控制FPGA。
: 即使你输出的是看上去的3.5KHz,你用频谱仪看看就知道杂波有多少了,因为程序会因为这样那样的原因导致输出时钟的不精确
谢了[em18]