主题:controlSUITE中讨论的其他部件
工具/软件:Code Composer Studio
大家好,
我正在使用TMS320F28x的EVAL套件。 我正在尝试在 我的开发板中实施PWM+ADC。 我的开发板上的ADC引脚无法正常工作。 PWM在同一开发板上工作。
我的代码:
//配置ADC
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // ADC
AdcRegs.ADCCTL1.bit.ADCREFSEL = 0; //使用内部bandgap
AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; //加电带间隙
AdcRegs.ADCCTL1.bit.ADCREFPWD = 1; //启动参考
AdcRegs.ADCCTL1.bit.ADCPWDN = 1; //为ADC的其余部分加电
AdcRegs.ADCCTL1.bit.ADCENABLE = 1; //启用ADC
AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;//不允许样本重叠
(i = 0;i < 5000;I++)
{
}// 等待6万个周期=1ms (每次迭代为12个周期)
AdcRegs.ADCCTL1.bit.INTPULSEPOS =1;//在输出锁存之前创建1个周期的int脉冲
//将S/H窗口设置为6个clk周期(112.5ns)
AdcRegs.ADCSOC0CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC1CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC2CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC4CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC5CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC6CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC9CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC8CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC10CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC12CTL.bit.ACQPS = 8;
AdcRegs.ADCSOC14CTL.bit.ACQPS = 8;
// AdcRegs.INTSEL1N2.bit.INT1SEL = 12; // ADCCH12 (ADC-B4) EOC导致ADCInterrupt 1
// AdcRegs.INTSEL1N2.bit.INT1CONT = 1; //将ADCInterrupt 1设置为auto CLR
AdcRegs.INTSEL1N2.bit.INT1E =0; //禁用ADC中断
//请注意,SOC3,7,11,13和15是有效的,但这些SOC未配置
//因为这些ADC输出在controlSTICK上不存在。 配置
//配置为可读性。
//EOC =转换事件结束;SOC =转换事件开始
AdcRegs.ADCINTSOCSEL1.bit.SOC0 = 0;//没有选择ADC Inrupt 1导致SOC0
AdcRegs.ADCINTSOCSEL1.bit.SOC1 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC2 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC4 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC5 = 0;
AdcRegs.ADCINTSOCSEL1.bit.SOC6 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC8 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC9 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC10 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC12 = 0;
AdcRegs.ADCINTSOCSEL2.bit.SOC14 = 0;
AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1;// ADC中断中由CPU timer0选择
AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC9CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC10CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC12CTL.bit.TRIGSEL = 1;
AdcRegs.ADCSOC14CTL.bit.TRIGSEL = 1;
//选择接收SOCx时要转换的通道
AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;//接收到SOC0时转换ADC-A0 (CH0)
AdcRegs.ADCSOC1CTL.bit.CHSEL = 1;//接收SOC1时转换ADC-A1 (CH1)
AdcRegs.ADCSOC2CTL.bit.CHSEL = 2;
AdcRegs.ADCSOC4CTL.bit.CHSEL = 4;
AdcRegs.ADCSOC5CTL.bit.CHSEL = 5;
AdcRegs.ADCSOC6CTL.bit.CHSEL = 6;
AdcRegs.ADCSOC8CTL.bit.CHSEL = 8;
AdcRegs.ADCSOC9CTL.bit.CHSEL = 9;//接收SOC9时转换ADC-B1 (CH9)
AdcRegs.ADCSOC10CTL.bit.CHSEL = 10;
AdcRegs.ADCSOC12CTL.bit.CHSEL = 12;
AdcRegs.ADCSOC14CTL.bit.CHSEL = 14;
EDIS;
你们能帮我解决吗?
此致,
Ranjit Chennamchetty