f28335adc连续运行模式
时间: 2023-08-09 22:05:58 浏览: 152
Example34_DSP2833x_DAC_ADC_f28335_adc_
5星 · 资源好评率100%
TMS320F28335芯片的ADC模块支持两种工作模式:单次采样模式和连续采样模式。下面是一个简单的示例代码,用于配置TMS320F28335芯片的ADC模块以进行连续采样模式:
```
#include "F28335_Adc.h"
void main(void)
{
// 初始化ADC模块
InitAdc();
// 启动ADC连续采样模式
AdcRegs.ADCTRL2.bit.CONTINUOUS_SEQ1 = 1;
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;
// 在此处添加您的应用逻辑代码
while(1)
{
// 在这里处理ADC采样数据
}
}
// 初始化ADC模块
void InitAdc(void)
{
// 使能ADC时钟
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1;
AdcRegs.ADCCTL1.bit.ADCREFPWD = 1;
AdcRegs.ADCCTL1.bit.ADCPWDN = 1;
AdcRegs.ADCCTL1.bit.ADCENABLE = 1;
// 设置ADC时钟分频器和采样窗口
AdcRegs.ADCCTL2.bit.CLKDIV2EN = 1;
AdcRegs.ADCCTL2.bit.CLKDIV4EN = 1;
AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;
AdcRegs.ADCCTL2.bit.SIGNALMODE = 0;
AdcRegs.ADCCTL2.bit.INTPULSEPOS = 1;
AdcRegs.ADCCTL2.bit.ADCREFSEL = 0;
// 配置ADC采样
AdcRegs.ADCSOC0CTL.bit.ACQPS = 63; // 采样窗口长度
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0x5; // 默认使用EPWM1触发
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; // 选择A0通道进行采样
AdcRegs.ADCSOC0CTL.bit.ACQPS = 63; // 设置采样窗口长度
// 启用ADC采样
AdcRegs.ADCSOC0CTL.bit.ACQPS = 63; // 采样窗口长度
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0x5; // 默认使用EPWM1触发
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; // 选择A0通道进行采样
AdcRegs.ADCINTSEL1N2.bit.INT1SEL = 0; // ADC SOC0产生中断
AdcRegs.ADCINTSEL1N2.bit.INT1E = 1; // 使能ADC中断
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; // 清除ADC中断标志位
}
```
在上面的代码中,`AdcRegs.ADCTRL2.bit.CONTINUOUS_SEQ1`被设置为`1`,以启用ADC的连续采样模式。在连续采样模式下,ADC将持续地采集数据,而不需要再次触发。在上面的代码中,ADC使用EPWM1触发进行采样,但您可以根据需要更改触发源。
希望这个示例程序可以帮助您开始使用TMS320F28335芯片的ADC模块进行连续采样。
阅读全文