完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
Heloi试图用PIC18F97 J94使用ADC模块,但我不能让它工作,结果总是0。我在数据表上阅读了有关ADC的所有内容,但仍然没有运气。我用MikROC编译器,希望有人能帮助我,我会很感激的!下面是我的代码和所有配置位,也许我在这里漏掉了什么东西?
|
|
相关推荐
12个回答
|
|
|
我不确定米克罗。所以我认为你应该重新检查所有寄存器的值,看看它们是否被正确设置。此外,如果你不确定你的PIC正在运行,在循环中添加一个闪烁的LED。
|
|
|
|
|
|
我认为你在这里犯了一个错误:(虽然可能没有引起你的主要问题)AN4是由ANSEL4控制的,而不是ANSEL5,等等。
|
|
|
|
|
|
谢谢荒山亮,但我认为那不是真的。看到附图了吗?针RA5(AN4)由ANSEL5(比特5)控制,对吗?
|
|
|
|
|
|
你说得对,很抱歉把这个问题弄糊涂了。这个家庭的号码真的是到处都是。
|
|
|
|
|
|
该行表示结果将进入与通道对应的缓冲区。该行是不管用的,因为BUFREGEN=1该行选择系统时钟,但是为了这样做,您还需要设置时钟分频器。我不知道你的系统时钟频率是什么,所以我不能建议适当的除法器。不过,不用担心。简单地使用ADC时钟通过设置ADRC到1。该线路选择信道7(AN7/RF2),因此,结果是ADCBUF7而不是ADCBUF1。
|
|
|
|
|
|
你好。非常感谢,对不起,我发错了一段代码。我知道如果不使用FIFO,结果应该在ADCBUF7中。从那以后,我尝试了很多东西,但仍然一无所获,这太疯狂了。我以前从来没有在PIC18设备上遇到过这样的问题,但是这个J系列对我来说真的很模糊。我试着像您建议的那样使用ADC时钟,但是它没有工作。所以现在我使用的是源自系统时钟的时钟,但是我认为我必须在ADCON3L/H寄存器中设置正确的TAD值,对吧?我该怎么做呢?我还附加了配置项目设置。我不确定我的PIC在运行什么?我使用的是外部16MHz晶体,但PIC数据表说它运行@ 64兆赫。这意味着,如果我使用16MHz晶体,它将运行@ 16MHz或@ 64兆赫?这是我的最新代码:
|
|
|
|
|
|
它没有与ADC时钟一起工作,那么其他问题就错了。无论系统时钟频率或ADCON3L值如何,ADC时钟将*总是*工作。您说时钟频率是16MHz,并且启用了4x锁相环,这使得Fosc=64MHz。在这种情况下,系统时钟是FoCC/4或16MHz,这使得TIN=1/16MHz或63 ns。TAD期必须是300纳秒,即5天。因此,将ADCON3L设置为(5-1)=4。我没有microC编译器,因此我将您的代码改为使用XC8,该XC8应该能够通过一些小的修改来使用microC。
|
|
|
|
|
|
再次感谢您的回复!ASAP,我来试一试,让你知道。如果它不工作,我会尝试XC8编译器。
|
|
|
|
|
|
它现在起作用了!我真的很感激你的帮助;)你能告诉我在ADCON3H寄存器中RC时钟和系统时钟分频器有什么区别吗?哪一个更好,为什么?我也想检测模拟引脚是否真正连接或不。这是可能的吗?如果PIN没有连接,我的值是浮动的,我不能确定PIN是否连接?使用外部电阻可以解决这个问题吗?像下拉10K?
|
|
|
|
|
|
我相信你必须使用上拉,而不是下拉,如果你想检测打开传感器的条件…我假设这是你想要的应用。然而,你必须牺牲你的ADC范围的一部分来做到这一点。比如说,在12位ADC上把模拟引脚连接到+3.3V。在开放条件下,ADC应该读取满刻度或4095个计数。但是在所有情况下,您必须将输入信号的范围限制在小于3.2V(对应于ADC计数4000)。因此,如果传感器被连接,ADC将读取小于4000个计数的值。如果ADC读取4095个计数,那么您可以确信它是一个开放式传感器。
|
|
|
|
|
|
A2D RC时钟是A/D的专用时钟源,即使在休眠模式下也是存在的。如果设备处于休眠模式,它将会工作,但是由于它比A2D的速度慢得多,所以它将导致较慢的吞吐量。A2D时钟分频器是来自系统时钟的后定标器。可以选择适当的分压比,使A2D以最佳速度运行,并具有最高的吞吐量。外部上拉或下拉电阻可以帮助确定模拟通道是否未连接。一些引脚有内部的上拉也可以使用。戴维OtnPIC18应用管理器
|
|
|
|
|
|
HIADC现在工作,但现在我想阅读6个不同的渠道,但我不知道如何尽快做到这一点。现在,我在主程序中进行采样和转换。我有10US延迟之间的每个采样,然后等待完成转换完成位。然后我换频道,重复序列…有没有更好的方法,通过使用中断?这是我当前的代码:
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1097浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:52 , Processed in 1.263583 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
939