完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我已经在16F1705中实现了大部分的编解码器。尽管分辨率有点低,但是基本上还是可以工作的。现在我还需要第二个模拟输入,并且遇到Tacc采样延迟的问题。我的代码工作方式是基于定时器0的单个中断例程,每125uS中断一次。当我进入中断时,我检索DAC结果,并设置下一个转换。定时是这样的,我可以很轻松地得到每个cyckle的值。同样地,DAC由相同的中断例程服务。现在,我真的需要另一个模拟值,所以我考虑使用定时器中断来启动ADC转换,启用ADC中断,并且一旦完成了“主”ADC转换,ADC中断应该触发“辅助”ADC转换。两个转换将在下一次定时器中断之前完成。现在,对于问题:我不能在定时器例程中设置GO位,因为之前选择了其他ADC,在选择正确的ADCI之后需要等待2-3我们先设置GO位,以免违反TACC。同样地,在ADC中断中,我想设置“主”ADC,开始转换,结果应该为定时器中断做好准备。问题是我需要在每个中断例程中“旋转”2-3uS以符合Tacc,或者让主定时器中断触发(带有选择)触发。第二个定时器(带go)触发ADC中断(带select)和另一个定时器int(带go),最后一个定时器中断完成主转换。两个解决方案似乎都不是一个好的实践,1)在int例程中旋转到“浪费”2-3uS,或者2)产生两个额外的中断,只是为了能够E进行两个ADC转换。(即,从每周期1int到每周期3int。)对于单通道转换,采样延迟基本上被消除,因为没有重选,所以可以工作。一旦转换完成,ADC可重新启用采样。在ADC中,什么是“延迟和GO”功能可以解决这个问题,但是我在这张PIC上看不到这样的东西。对于如何更好地进行每个125uS的两个ADC转换,你有什么好的建议吗?GwebPS。还要注意的是,Microchip忘记告诉你禁用电源上启用的WPU(弱PULUPS)。如果你不这样做,你会对你的转换产生积极的偏见,这取决于你的模拟信号的源阻抗。格林先生:
|
|
相关推荐
4个回答
|
|
许多更新的图片都内置了硬件获取延迟。很遗憾,16F1705没有。只是确认一下,你真的需要快速取样吗?你可以很容易做到每第四次中断得到一个样本。你能按当前速率的两倍运行定时器中断吗?
|
|
|
|
我会同意RIC提出的一个使计时器中断倍增的建议。另一个选项是更复杂的PIC,它为您处理这个问题(一些具有A/D转换器,将自动扫描所选频道的列表)。
|
|
|
|
谢谢……嗯,我想我得试着把中断率加倍。我目前在8khz下运行这个程序,对于像电话一样的音频信号来说。所以每隔一段时间,我会对音频进行采样,每隔一段时间,我会对“aux”进行采样,虽然这个程序可以按mS间隔进行,但“main”需要与8khz同步,所以我看不到更好的方法。在中断时,我必须存储r结果,在退出之前选择另一个通道,并包括大量的NOP并最终设置GO位。我想我必须添加一些切换来验证我是否能在62uSec中实际执行所有时间关键任务。
|
|
|
|
第二个ADC是否需要类似的采样率?一个简单的I2C ADC,通过你的非中断代码访问,如果你不需要快速采样就足够了。
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
727浏览 1评论
612浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
501浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
626浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:22 , Processed in 1.123274 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号