MSP430讨论区
返回
登录/注册
请教MSP430F449数据采集周期计算是否正确
楼主
xiaocheng_2007 于 2011-12-21 13:42:58
请教MSP430F449数据采集周期计算是否正确
[P]void main(void)
{
WDTCTL = WDTPW+WDTHOLD; //关闭看门狗
P6SEL |=0x01; //使能ADC通道
ADC12CTL0 = ADC12ON+SHT0_6+MSC; //打开ADC,设置采样时间,128个时钟周期
ADC12CTL1 = SHP+CONSEQ_2; //使用采样定时器
ADC12CTL1 |= ADC12SSEL_1; // select ACLK
ADC12IE = 0x01; //使能ADC中断
ADC12CTL0 |=ENC; //使能转换
_EINT();
while (1)
{
ADC12CTL0 |=ADC12SC; //开始转换
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
}
///////
//函数名称: ADC12ISR
//功能: ADC中断服务函数,在这里用多次平均的方法计算P6.0口的模拟电压数值
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
static int index = 0;
results[index++] = ADC12MEM0; //move results
if(index == Num_of_Results)
{
calc_cycle(results);
index = 0;
}
_BIC_SR_IRQ(LPM0_bits);
}[/P][P]
以上是采集程序的一部分。[/P][P]采集保持时间为128个时钟周期,时钟为ACLK信号,再加上13个固定的转换时间,[/P][P]所以采样时间为(128+13)/32768=0.004s,[/P][P]大家帮我看看我计算的采样时间是不是正确。[/P][P]因为我得到的程序结果有些出入,所以我想确定一下采样周期是否正确,感谢大家![/P]
回复
1楼
DC 于 2011-12-21 14:34:37
[P]你好:
只要采样周期最小时间能符合采样时序的最小时间要求的话,这是基本要求。
ADC12CLK=ACLK这个不算高。[/P][P]他的采样时间保由两部组成,第一是13个ADC12CLK+采样保持触发时间(也就是采样定时器,如果你有做分频了,当然由这个分频时间所决定。)。基本上可以安上述的计算方案来推断出采样周期的。SHP这个必须要选择正确喔。[/P]
回复
2楼
xiaocheng_2007 于 2011-12-21 14:42:34
非常感谢版主确认!
回复
1
电脑版
Page created in 0.1562 seconds width 3 queries.