共2条
1/1 1 跳转至页
adc12 关于adc12采样控制问题
问
问题一:在用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;
}
这是我的中断服务程序,大家看看
问题二: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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
