这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » adc12 关于adc12采样控制问题

共2条 1/1 1 跳转至

adc12 关于adc12采样控制问题

院士
2006-09-17 18:14:16     打赏
adc12 关于adc12采样控制问题



关键词: adc12     关于     采样     控制     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 问题一:在用adc12对频率信号采样时,通过ADC12CTL0的SHT0选择了采样频率,选择采样模式为单通道多次转换,在中断服务程序中把ADC12MEM中的数据读出,这种做法为什么不能保持原来选择的采样频率。实际采样频率低于选择的采样频率。

问题二:ADC12CTL1中SHS如果采用第2种模式,Timer_A.OUT1,它是如何工作的? 1: 我也用ADC12,但是没有去过分关注频率,请问频率与设定差距很大吗? 2: 我现在想用ADC12的单通道连续采样模式,它每次采样之后有中断产生,在中断服务程序中我写了几条语句,大概在10个指令周期,而我选用的SHT0为7,即tsample=4*tadc12clk*48,tadc12clk=mclk,这就是说我在中断服务程序中把ADC12MEM的数据读出的过程中,新的数据还未更新,当我读出数据后等待下一次的数据更新产生中断请求。这样,连续采样应该能够在所设定的采样频率下发生,而且应该不会出现数据丢失的现象。但现在的问题就是采样频率没有按照我所设定的情况发生,都是比设定的采样周期慢,而且改变不同的SHT0其采样频率改变不大,尤其是采样频率选择高的时候。
这种情况的发生时为什么呢?是否是因为在等待中断服务的时候发生的延迟,或者是因为中断执行过程中执行时间比采样时间多而产生的数据丢失呢? 3: 我觉得你说的都有可能,还有可能是别的中断服务程序的原因 4: 中断中的时间要求很严格,不要放运算付值的语句 5: 大家继续阿,我还在迷惑中。 6: 建议时钟选高频的,AD中断时关闭别的中断,中断内只进行存放数据,语句不能太多,采样几次后集中处理数据 7: 中断里少放算法和赋值 8: #pragma vector=ADC_VECTOR
__interrupt void ADC12(void)
{
ADC12IE&=~BIT0;
result[num]=ADC12MEM[0];
num++;
if(num>=200)
{
num=0x00;
ADC12IFG&=~BIT0;
ADC12CTL0&=~ENC;

LPM0_EXIT;
}
ADC12IE|=BIT0;
}


这是我的中断服务程序,大家看看

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]