共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |