完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
环境为PIC32MZ1024EFH100、HARMony v1.10和MPLLABv3.60。我需要检测一个开关何时被按在四个模拟输入中的任意一个上。每个模拟输入连接到一个按钮开关上。输入电压通常是3.3伏。当开关被压下时,输入电压是2.8伏。引脚AN2、AN3、使用AN4和AN6作为输入。这对于数字输入来说很容易,但是无论出于什么原因,要求是使用模拟。我已经在Harmony中浏览了ADCHS示例,以帮助决定选择什么框架。我最初的想法是使用通道扫描示例。使用频道7-下面包括的原始代码。我用AN8代替AN2,用AN31、AN32和AN33代替AN3、AN4和AN6。这个例子不起作用。第一次对PLIB_ADCHS_AnalogInputDataIsReady()的调用没有返回。在尝试了更多的示例,并与所有ADC选项完全混淆之后,我终于成功使用了示例“3类1输入的同时采样和转换”。我只尝试了一个模拟输入,即AN2,这确实有效。我能够读取0xFFD000(开关开)和0x4000(开关闭合)的值。修改后的代码如下:这个解决方案的问题是它使用1类输入,并且只有某些模拟管脚可用。对于PIC32MZ1024EFH100我相信我只能使用ADCHS通道0到4,这也分别需要输入AN0到AN4,我的输入之一是AN6。对于这样一个简单的问题,什么是正确的解决方案这样做(请不要说读取引脚的数字!)有什么想法吗?泰纳克斯
|
|
相关推荐
5个回答
|
|
因此,在进一步阅读之后,我已确认要使用单独的ADC模块,我的开关需要连接到从AN0到AN4或备用AN45到AN49的任何类别1输入。为了使用共享的ADC模块7,我认为输入需要是类别2(AN5到AN11)或类别3(AN32到AN44)。r采样需要是类2输入。对于PIC32MZ1024EFH100,我还没有找到所有AN输入属于哪个类的确切答案。以上信息是从数据表的不同部分收集的。最后,我需要将按钮开关连接到正确的AN输入。我还想知道使用共享的ADC模块7对系统的要求是否会较低?谢谢。
|
|
|
|
你看过Adss锅演示吗?它演示了数字比较器的配置。它们允许您为ADC生成一个事件,该事件超出范围,低于范围,或落在范围内。从您的描述中,听起来您的软件只有在其中一个通道从上面移动到低于您所描述的值范围时才会收到通知(中断)。
|
|
|
|
是的,我看过大多数例子。你说得对,使用数字比较器可能是可行的方法。但是,我还没能使用数字比较器生成中断。adchs_pot演示在每次采样之后(当数据准备好时)生成一个中断。然后它检查每个比较器是否有事件。在我的例子中,我有4个开关,每250mS采样一次。我不想每次采样和转换发生时被中断,因为开关不会经常被按下。我想在按下按钮时被中断。如果数字比较器下降到某一特定水平以下,我就可以用它来做这件事。我在一个新帖子中发布这个问题。干杯。
|
|
|
|
嗨,你有这个工作吗?
|
|
|
|
不,我没有用数字比较器来产生中断。最后要求改为数字输入,简单多了。
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2037 浏览 8 评论
1957 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2265 浏览 5 评论
788浏览 1评论
679浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
608浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 03:11 , Processed in 1.756968 second(s), Total 105, Slave 89 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号