工具/软件:Code Composer Studio
您好,
我对定时器A触发的ADC12采样时间的设置方式非常困惑。我不理解ADC12SHT0x寄存器是如何工作的,以及它与定时器时间的关系。
我的代码的目标是从5个ADC通道获取5个不同的信号。 采样时间为1毫秒。
我有不同的问题:
1.-计算1 kHz的ADCCLK周期,ADC12的频率应配置为3.2768万 Hz? 使用其他值时,我无法获得有效值。 使用此频率 时,我有33个CLK周期。
2.-通过这种方式,我是否必须将ADC12SHT0x配置为ADC12SHT0_4(64个周期)?
3.-是否也应将计时器配置为计数1毫秒?
4.-在本论坛的其他帖子中,我读到了对TA1CCTL0进行编程的不同方式,有些人使用OUTMOD_4,而另一些人使用OUTMOD_3,这是配置它的最佳方式?
我尝试对这些外设的配置进行编程,以便ADC具有1毫秒的采样时间。
代码是否低于合适的方式?
//定时器A初始
化void Timer_init (void)
{
TA1CCR0 =33-1; //设置为1ms
TA1CCR0=0;
TA1CTL = tassel_1 + MC_1 + TCLR; // aclk,upmode,clear TAR
TA1CCTL0=OUTMOD_4;
}//
ADC12 Initialization
void ADC12_init (void)
{//
ADC12 on,S&H 64个周期,多个转换
ADC12CTL0=ADC12ON+ADC12ON+ADC12MSC12_4+ADC1220;
//ADC12定时器,ADC12CL=ADC1221,
ADC1220通道,ADC1221,ADC12通道的12通道的12通道的12通道数,ADC12CL=ADC12CL=ADC1221,ADC12通道的12
//通道= A7
ADC12MCTL1 = ADC12INCH_12; //通道= A12
ADC12MCTL2 = ADC12INCH_13; //通道= A13
ADC12MCTL2 = ADC12INCH_14; //通道= A14
ADC12MCTL3 = ADC12INCH_15+ADC12EOS; // Channel = A15,End seq.
ADC12CTL0|=ADC12ENC; // Enable conversion
}(通道= A15,结束序列ADC12CTL0|=ADC12ENC;//启用转换)
提前感谢。
此致,
米格尔
