微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有什么方法可以更改PIC16F886中的ADC转换时间?

如何解决有什么方法可以更改PIC16F886中的ADC转换时间?

#include <xc.h>
#pragma config FOSC = HS
void main() 
{  
    OSCCONbits.IRCF = 0b111;
    OSCTUNE = 0b01111;
    OSCCONbits.SCS = 0;
    OSCCONbits.OSTS = 1;
    OSCCONbits.HTS = 1;
    OSCCONbits.LTS = 1;
    TRISBbits.TRISA2 = 0;
    ANSELbits.ANS2 = 1;
    ADCON0 = 0x89;
    ADCON1 = 0x00;
    while(1)
    {
        ADCON0bits.GO = 1;
        while(ADCON0bits.GO == 1)
        {
            PORTBbits.RB6 = ~(PORTBbits.RB6);
        }
    }
}

我正在努力更改ADC转换。 当我在检查示波器时。我将转换时间定为10微秒。但需要大约200纳秒的时间。

MPLAB 5.40版

Pickit 3程序员

XC8编译器

解决方法

完成一位转换的时间定义为Tad。完整的10位转换需要11个Tad周期。在20 Mhz时,最小Tad时间为1.6 us,请查看数据表TABLE 17-11。如果使用16 Mhz振荡器,则最小Tad时间为2 us。因此,要进行完整的10位转换,您的ADC需要22 us。但是ADC还需要一些时间来对保持电容充电,请参见数据表9.2节,大约2 us或更多。正如您可以计算出的,在16 Mhz微控制器振荡器下,PIC16F88x的最小ADC转换时间约为25us。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。