主题中讨论的其他器件:REF2033
工具/软件:Code Composer Studio
您好!
我使用12位 ADC 进行测量、并获得了 ADC 值、如下所示。
但 ADC0值有时不正确。
我使用 P1.0测量获取 ADC0所需的时间。
在 TRM 中、12位 ADC 转换时间为128ms。 这不同于我测量的值。
以下代码是否存在任何设置错误?
| ADC0 | 时间(ms) | 结果 |
| 6186. | 31.62. | 正确 |
| 672. | 64.31. | 错误 |
| 671. | 64.3 | 错误 |
| 6180 | 31.62. | 正确 |
===========================================================================================================
void SetupSD14 (u08_t 通道)
{
//设置:要采样的通道、可编程放大器增益(2x)、CIC 滤波器、SD14INTDLY0所需的值、因为 CIC 滤波器至少需要两个连续的样本才能生成准确的结果
// SDRATE 以最快的速度获得结果、但也不是最精确的、也启用了 SD14RBEN、它是流入热敏电阻和基准电阻的电流源
//SD14CTL1 = SD14RBEN1 + SD14RBEN0 + SD14UNI + SD14GAIN0 + SD14INTDLY0 +通道;
SD14CTL1 = SD14UNI + SD14INTDLY0 +通道;
SD14CTL1 |=(通道=Thermister_ADC2_CHANNEL)? SD14RBEN1:SD14RBEN0;
SD14CTL1 |=(通道=ADC0_CHANNEL)? (SD14RATE1 + SD14RATE0):SD14RATE1;// 12位
SD14CTL0 = SD14EN + VIRTGND;// SD14模块被启用、
SD14CTL0 |= SD14SC;//开始转换
}
void main()
{
(笑声)
(笑声)
//设置和读取 ADC0
SetupSD14 (ADC0_CHANNEL);
//设置 P1.0输出
P1DIR |= 0x01;
//切换输出高电平/低电平
P1OUT |= 0x01;
while (!(SD14CTL0 & SD14IFG){
};
P1OUT &=~0x01;
NFC_sys_data.ADC0_Buffer[0]= SD14MEM0;
SD14CTL0 &=~SD14IFG;//清除数据可用中断
(笑声)
(笑声)
}
===========================================================================================================
谢谢。