完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
嗨,我想读20个模拟端口,但是我找到的解决方案我只能读4个模拟端口。如何配置通道扫描所有端口?谢谢
以上来自于百度翻译 以下为原文 Hi, I want to read 20 analog ports but the solution that I found I just can read only 4 analog ports. How can I configure the channels to scan all ports? Thanks |
|
相关推荐
6个回答
|
|
对不起,我忘了提到D。我用的是DSPIC33 EP512MU814。
以上来自于百度翻译 以下为原文 Sorry I forgot to mention that =D I'm using dspic33EP512MU814 |
|
|
|
|
|
|
|
karan123我已经测试过这个解决方案,但是,这意味着我必须使用MUXA和MUXB中的ch0、1、2和3,并且我不能读取更多的模拟端口,因为它们是为这8个通道配置的。还有其他解决方案吗?还是我必须一遍又一遍地重新配置通道以读取外接的模拟端口?谢谢
以上来自于百度翻译 以下为原文 karan123 I have already tested that solution but, AD1CHS0bits.CH0SA = 8; // Select AN8 for CH0 +ve input AD1CHS0bits.CH0NA = 0; // Select VREF- for CH0 -ve input AD1CHS123bits.CH123SA = 0; // Select AN0 for CH1 +ve input // Select AN1 for CH2 +ve input // Select AN2 for CH3 +ve input AD1CHS123bits.CH123NA = 0; // Select VREF- for CH1/CH2/CH3 -ve inputs /* Assign MUXB inputs */ AD1CHS0bits.CH0SB = 9; // Select AN9 for CH0 +ve input AD1CHS0bits.CH0NB = 0; // Select VREF- for CH0 -ve input AD1CHS123bits.CH123SB = 1; // Select AN3 for CH1 +ve input // Select AN4 for CH2 +ve input // Select AN5 for CH3 +ve input AD1CHS123bits.CH123NB = 0; // Select VREF- for CH1/CH2/CH3 -ve inputs means that I have to use ch0, 1, 2 and 3 from MUXA and MUXB, and I'm not able to read more analog ports because they are configured for that 8 channels. Is there more solutions or I just have to reconfigure over and over again the channels to read outhers analog ports? Thanks |
|
|
|
嗨,你的问题是“多扫描ADC模拟引脚和ADC读取”的问题?你能解决这个问题吗?我记得你用DMA和通道扫描在CH0上读取4个模拟输入。如果这个代码是工作的,你只需要做一些小的改变来采样20个输入:-在AD1CSH::Ad1CSSL中设置总共20个‘1’位来选择你想要采样的通道。-设置AD1CON2BITS.SMPI到20-1=19 -集。DMANCNT到20-1=19
以上来自于百度翻译 以下为原文 hi, what about your questions in "Multiple scan for multiple adc analog pin and ADC read"? Could you solve this? I remember you used DMA and channel-scanning on CH0 to read from 4 analog inputs. If this code is working you only have to do some small changes to sample 20 inputs: - set a total of 20 '1' bits in AD1CSSH::AD1CSSL to select the channels witch you want to sample. - set AD1CON2bits.SMPI to 20-1=19 - set DMAxCNT to 20-1=19 |
|
|
|
你有2个ADC模块(10位),每个模块有4个S/H。Ch0用于通道扫描,由ADxCSSH/ADxCSSL设置。你可以只用a)CH0 b)CH0和CH1 c)CH0~CH3。所以基本上,你需要一个时间表来读取那些模拟通道(ANx)。最简单的时间表是只用CH0,如例16-6所示。例如,使用AD2表示AN0~AN15,AD1表示AN16~31,您设置AD2CSSL=0xFFFF,AD1CSSH=0xFFFF,AD1CSSL=0。每个ANx的采样频率是不同的,AN0~AN5将被更频繁地采样。因此,如果每个ANx的采样频率相同,则必须使用示例16-6所示的情况。
以上来自于百度翻译 以下为原文 You have 2 ADC modules (10bits), and each has 4 S/H. Ch0 is for channel scanning, set by ADxCSSH/ADxCSSL. You can use a) CH0 only b) CH0 and CH1 c) CH0~CH3. So basically, you need a schedule for reading those analogue channels (ANx). the simplest schedule is using CH0 only, shown in Example 16-6. for example, using AD2 for AN0~AN15, AD1 for AN16~31, you set AD2CSSL=0xFFFF and AD1CSSH=0xFFFF, AD1CSSL=0. If you use CH0~CH3, as shown in Example 16-4, because CH1~CH3's positive input is fixed to AN0~AN5, for the other ANx, you have to use CH0 and set CSCNA to 1. The sampling frequency for each ANx will be different, AN0~AN5 will be sampled more frequently. So if the sampling frequency is the same for each ANx, you have to use the case shown in Example 16-6. |
|
|
|
很抱歉今天才回复。我把AD1CON2bits.SMPI设置为19,然后它工作得很好。再次感谢Weydert
以上来自于百度翻译 以下为原文 Sorry to reply only today. I set the AD1CON2bits.SMPI to 19 and then it works well. Thanks again Weydert |
|
|
|
只有小组成员才能发言,加入小组>>
5084 浏览 9 评论
1957 浏览 8 评论
1893 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3122 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2191 浏览 5 评论
640浏览 1评论
523浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
380浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
544浏览 0评论
446浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-5 00:14 , Processed in 1.234575 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号