dsp28335 adc采样代码
时间: 2023-07-09 22:45:38 浏览: 265
以下是DSP28335的ADC采样代码,使用的是软件触发方式:
```c
#include "DSP2833x_Device.h"
// 定义ADC采样结果缓存数组
Uint16 ADC_Result[16];
void main(void)
{
// 初始化系统时钟和GPIO
InitSysCtrl();
InitGpio();
// 初始化ADC
ADC_enableBandgap(ADC_ADCA);
ADC_enableRefBuffers(ADC_ADCA);
ADC_powerUp(ADC_ADCA);
DELAY_US(1000);
ADC_calibrate(ADC_ADCA);
// 配置ADC采样参数
ADC_setIntMode(ADC_ADCA, ADC_INT_NUMBER1, ADC_INT_MODE_EOC);
ADC_setIntSrc(ADC_ADCA, ADC_INT_NUMBER1, ADC_SOC_NUMBER0);
ADC_setSocChanNumber(ADC_ADCA, ADC_SOC_NUMBER0, ADC_CH_ADCIN0);
ADC_setSocTrigSrc(ADC_ADCA, ADC_SOC_NUMBER0, ADC_TRIG_SW);
ADC_enableSocInt(ADC_ADCA, ADC_SOC_NUMBER0);
// 启动ADC采样
ADC_startConversion(ADC_ADCA, ADC_SOC_NUMBER0);
// 循环采样并打印结果
while (1)
{
Uint16 i;
// 触发ADC采样
ADC_forceConversion(ADC_ADCA, ADC_SOC_NUMBER0);
// 等待ADC采样完成
while (!ADC_getIntFlagStatus(ADC_ADCA, ADC_INT_NUMBER1));
// 清除ADC中断标志位
ADC_clearIntFlag(ADC_ADCA, ADC_INT_NUMBER1);
// 读取ADC采样结果,并保存到缓存数组中
for (i = 0; i < 16; i++)
{
ADC_Result[i] = ADC_readResult(ADC_ADCA, i);
}
// TODO: 打印ADC采样结果
}
}
```
在上面的代码中,通过`ADC_setSocTrigSrc`函数将ADC的SOC0触发源设置为软件触发,然后在主程序中循环触发ADC采样,并等待ADC采样完成。在ADC的中断服务函数中,通过`ADC_readResult`函数读取ADC采样结果,并保存到`ADC_Result`数组中。在主程序中,可以通过`ADC_Result`数组获取采样结果。
阅读全文