c - ADC 缓冲区未保存完整值
问题描述
我正在尝试从 PIC24F Curiosity 开发板(PIC24FJ128GA204)中的电位器读取 ADC 值,然后如果值大于 1000(我将其配置为 10 位)打开 LED。但是,缓冲区中的最大值约为 500。以下代码显示了该问题。请指教。
#include <xc.h>
#define Pot_TriState _TRISC0
#define Pot_AnalogState _ANSC0
int main(void) {
Pot_TriState = 1;
Pot_AnalogState = 1;
_TRISC5 = 0;
_LATC5 = 0;
ADC_Config();
while (1) {
if (ADC1BUF10 >= 1000) {
_LATC5 = 0; //Never be executed
}
if (ADC1BUF10 >= 300) {
_LATC5 = 1;
}
}
return 0;
}
void ADC_Config() {
AD1CON1bits.ADON = 0; // ADC must be off when changing configuration
//start conversion automatically after sampling and configure ADC to either 10 or 12 bits
AD1CON1bits.SSRC = 7;
AD1CON1bits.MODE12 = 0;
AD1CON2bits.PVCFG = 0; //A/D Converter Positive Voltage Reference Configuration bits
AD1CON2bits.NVCFG0 = 0; // A/D Converter Negative Voltage Reference Configuration bit
AD1CHSbits.CH0SB = 0b01010; //01010 = AN10
AD1CHSbits.CH0SA = 0b01010; //added
AD1CON3bits.ADRC = 1; // 1 = RC clock --- ADC?s internal RC clock
AD1CON3bits.SAMC = 0b11111; // set auto sampling time -- Auto-Sample Time Select bits11111 = 31 TAD
AD1CON2bits.BUFREGEN = 1; //Conversion result is loaded into the buffer location determined by the converted channel
AD1CON1bits.ASAM = 1;
AD1CON1bits.ADON = 1;
}
解决方案
推荐阅读
- c++ - Fixed parameters in a function, c++
- flutter - Apply posterize filter on image in flutter
- reactjs - react_table__WEBPACK_IMPORTED_MODULE_2___default(...) is not a function
- amazon-web-services - 我可以使用自托管 Web-API 作为 AWS API Gateway 的后端吗?
- linux - CentOS 和 Tomcat
- c# - 错误:客户端找到“多部分/相关 C# asmx 客户端”的响应内容类型
- python - 编译器在我的函数参数中寻找额外的属性
- javascript - 如何从 Vue.js 调用函数到 HTML 页面
- node.js - 检索未在 Handlebars 中迭代的对象的数据
- vb.net - vb.net 问题 System.ArgumentOutOfRangeException,嘿,我有这个错误弹出的问题