共2条
1/1 1 跳转至页
LPC2214,AD 求助:LPC2214的AD转换问题
问
用示波器测试到AD测试点的波形没有问题。但AD转换后数据不正确,从小到大一直升高,实际波形并不是这样。
现在用的是2214的内部flash调试。而该主程序(完全相同)在LPC2210的外部ram中调试,则数据没有任何问题。请高手指教,是不是两种芯片的ad转换有不同的地方? 答 1: 请把程序贴出来帮助您分析 答 2: 程序部分uint32 ADC_Data;
uint16 ccddata[551];
这是初始化部分。
ADCR=(1<<2)|
((Fpclk/4500000-1)<<8)|
(0<<16)|
(0<<17)|
(1<<21)|
(0<<22)|
(0<<24)|
(0<<27);
这是中断服务中取数据的程序:
for(i=0;i<=550;i++)
{
ADCR=ADCR|(1<<24);
while((ADDR&0x80000000)==0);
ADC_Data=ADDR;
ccddata[i]=(ADC_Data>>6)&0x3FF;
}
取出的数据从小到大上升状,与实际曲线情况不符,实际的数据没有这种斜度。而在2100中则没有这种问题。不知道为何。谢谢!!
答 3: 问题已解决这个程序本来在2210的exram下调试没问题的。但因为2214的内部flash调试速度很快,所以就出现了不同。我在ad转换中加入了延时程序就没问题了。
不过不知道为什么速度会差这么多。
还有也希望有谁有好的延时程序能分享一下,不胜感激,谢谢!!
现在用的是2214的内部flash调试。而该主程序(完全相同)在LPC2210的外部ram中调试,则数据没有任何问题。请高手指教,是不是两种芯片的ad转换有不同的地方? 答 1: 请把程序贴出来帮助您分析 答 2: 程序部分uint32 ADC_Data;
uint16 ccddata[551];
这是初始化部分。
ADCR=(1<<2)|
((Fpclk/4500000-1)<<8)|
(0<<16)|
(0<<17)|
(1<<21)|
(0<<22)|
(0<<24)|
(0<<27);
这是中断服务中取数据的程序:
for(i=0;i<=550;i++)
{
ADCR=ADCR|(1<<24);
while((ADDR&0x80000000)==0);
ADC_Data=ADDR;
ccddata[i]=(ADC_Data>>6)&0x3FF;
}
取出的数据从小到大上升状,与实际曲线情况不符,实际的数据没有这种斜度。而在2100中则没有这种问题。不知道为何。谢谢!!
答 3: 问题已解决这个程序本来在2210的exram下调试没问题的。但因为2214的内部flash调试速度很快,所以就出现了不同。我在ad转换中加入了延时程序就没问题了。
不过不知道为什么速度会差这么多。
还有也希望有谁有好的延时程序能分享一下,不胜感激,谢谢!!
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
