共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |