F28335 ADC 启停模式配置代码示例
在 F28335 中,将 AD 转换器配置为启停模式需要进行以下步骤:
- 配置 ADC 模块的时钟源和分频系数:
// 选择 ADC 的时钟源和分频系数
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; // 使能内部参考电压缓冲器
AdcRegs.ADCCTL1.bit.ADCREFSEL = 0; // 使用内部参考电压
AdcRegs.ADCCTL1.bit.ADCCLKPS = 0; // 时钟分频系数为 1
- 配置 ADC 的采样窗口和采样时间:
// 配置采样窗口和采样时间
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; // 选择转换通道 0
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
- 配置 ADC 的触发源和转换模式:
// 配置触发源和转换模式
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 0; // 选择软件触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1; // 选择 ePWM1 SOC0 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 2; // 选择 ePWM1 SOC1 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 3; // 选择 ePWM1 SOC2 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 4; // 选择 ePWM1 SOC3 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 5; // 选择 ePWM1 SOC4 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 6; // 选择 ePWM1 SOC5 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 7; // 选择 ePWM1 SOC6 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 8; // 选择 ePWM1 SOC7 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 9; // 选择 ePWM1 SOC8 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // 选择 ePWM1 SOC9 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 11; // 选择 ePWM1 SOC10 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 12; // 选择 ePWM1 SOC11 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 13; // 选择 ePWM1 SOC12 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 14; // 选择 ePWM1 SOC13 触发
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 15; // 选择 ePWM1 SOC14 触发
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0; // 采样窗口为 1 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 1; // 采样窗口为 2 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 2; // 采样窗口为 3 个 ADC 时钟周期
// ...
- 启动 AD 转换:
// 启动 AD 转换
AdcRegs.ADCSOC0CTL.bit.ACQPS = 1; // 采样窗口为 2 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 2; // 采样窗口为 3 个 ADC 时钟周期
// ...
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 15; // 采样窗口为 16 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0; // 采样窗口为 1 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 1; // 采样窗口为 2 个 ADC 时钟周期
// ...
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 15; // 采样窗口为 16 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0; // 采样窗口为 1 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 1; // 采样窗口为 2 个 ADC 时钟周期
// ...
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 15; // 采样窗口为 16 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 0; // 采样窗口为 1 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 1; // 采样窗口为 2 个 ADC 时钟周期
// ...
AdcRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口为 15 个 ADC 时钟周期
AdcRegs.ADCSOC0CTL.bit.ACQPS = 15; // 采样窗口为 16 个 ADC 时钟周期
以上代码片段仅供参考,具体的配置和使用方式需要根据实际需求进行调整。
原文地址: https://www.cveoy.top/t/topic/bt9L 著作权归作者所有。请勿转载和采集!