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