仪器测频不准或晶振频率测量仪器值跳动怎么办?

如何确保频率的准确测量
功率分析仪在测试时出现的数据跳动、效率异常等现象,很多时候与信号的频率是否准确测量有着很大的关系,本文就对频率测量的重要性进行分析,希望能帮助大家进行更准确的测量。
首先我们来看看为什么频率的测量对其他参数会造成如此大的影响。
同步源的选择
用过功率分析仪的工程师一定会记得,在对仪器进行设置的时候,一个叫“同步源”的设置选项,该选项包括了各个测试通道的电压和电流,工程师可以自主来进行选择。该选项的选择对直流信号测试影响不大,但对交流信号的测试会有很大的影响。原因是因为如果交流信号测量数据的间隔如果与信号周期不同步的话,相当于测试的数据是非整周期,那么计算的结果也将不准确。功率分析仪检测和计算信号的周期是同步源来决定的,所以选择准确的同步源对测试结果非常关键。同步源选择的原则是尽可能的选择接近正弦波的信号,比如电网工频电我们一般选择电压为同步源,又如电机驱动输出的PWM信号,我们可以选择电流做同步源。
PLL源的选择
除了同步源信号对测量数据有很大影响以外,我们在做谐波分析设置时,还有一个非常关键的源——PLL源。我们可以先来看一下谐波测量的方法,可以参考《一文读懂谐波测量方法》(加上微文链接),其中我们常用的谐波分析采用的是同步采样法,这样可以保证不会出现频谱泄露,保证谐波测量的准确,如IEC标准就规定了10倍基频的采样原则。而同步采样法的基础就是PLL源的选择。
以上我们分析了同步源和PLL源对测量数据和谐波的影响,那么这两个“源”跟信号频率又有什么关系呢?答案是关系非常大,同步源是保证仪器按照信号周期来进行技术,PLL源是保证谐波分析时,测量周期是被测信号周期的整数倍,这里我们可以看到信号周期的准确是对“源”的基本要求,而信号周期的测量实际上就是对信号频率的测量。
文章写到这里,我相信大家都理解了为什么频率测量准确对测量的数据结果这么重要了吧。那么接下来我们说说如何保证频率测量的准确。
保证频率测量准确的最关键一点就是信号的量程选择,量程选择不合适比如输入信号的幅值小于设定量程的10%,就会因为信号幅值过低而无法触发测频电路导致无测量结果或测量值错误,从而无法准确测量频率,所以选择合适的量程是准确测频的第一步。
其次如果输入信号含有较大的干扰信号,使测频电路误触发导致测量出错,此时为了保证测量信号的完整性,同时保证测试频率准确,可以开启设置当中的频率滤波器,以消除干扰信号的频率测量的影响。
当你遇到功率分析仪测试过程中数据不稳定、效率不稳定的情况时,不防按照本文进行排除是否频率测量不准确导致的,很多时候会有意外惊喜哦。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点频率特性测试仪的设计和调试
14:17:21来源: elecfans 关键字:&&
一、实验目的&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1.理解虚拟信号发生器如何在软件控制下产生扫频信号。&
2. 了解虚拟仪器实验平台的滤波器幅频特性的自动测试原理。&
3.掌握滤波器特性的测试方法。
二、实验内容
1.产生扫频信号。&
2.调用动态函数库,编写频率特性测试程序。&
3.设计基于虚拟仪器的。&
4.使用设计的频率特性仪对滤波器进行测试。
三、实验器材
1.计算机 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 1台&
2.SJ-8002B电子测量实验箱 &&&&&&&&&& &&& 1台&
3.滤波器电路实验板 &&&&&&&&&&&&&&&&&&&& 1块&
4.数字示波器 &&&&&&&&&&&&&&&& &&&&&&&&& 1台
四、实验原理
&& 1.线型系统频率特性测量基本原理
&& 频率响应是指线性网络对正弦输入信号的稳态相应,也称为频率特性。网络的频率特性通常都是复函数,它的绝对值代表这频率特性中的幅度随频率变化的规律,称为幅频特性;相角或相位表征了网络的相移随频率变化的规律,称为相频特性。线型网络的频率特性测量包括幅频特性测量和相频特性测量。&
&& 点频测量法:输出某一所需的单一频率连续波信号。对应的频率特性测量方法。&
&& 扫频测量法:频率源输出能够在测量所需的范围内连续扫描,以便连续测处各点频率上的频率特性结果并立即显示特性曲线,这样的方式就是扫频测量。
&&&2.线型系统幅频特性测试的计算。
&&& &&&&& &&&&&&
&&&&& &&&& &&&&& 图1&& 线型系统幅频特性计算原理
&& 此时的X(S),Y(S)为输入电压和输出电压的拉氏变换。
&&&&&&&&& 对应的&&&&&&
&&&&3.本实验中幅频特性测量的硬件基本原理
&&&&&&& &&&&&&&&&&&
&&&&&& &&&& &&&& &&&&& &&&&& &&&& &&&&& & 图2&&& 硬件基本原理
&&& 首先通过直接数字合成的正弦信号作为扫频信号源,通过Aout1送到滤波器实验板电路和第2路采集通道的输入端,1路通道将采集经过滤波后的信号,将相同频率的信号经A/D采样后送入存储器中,再送入计算机中,将滤波后信号的有效值处以未滤波信号的有效值,得到该频率下的幅频特性曲线。
&& 4.直接数字合成基本原理
& (1)DDS组成原理
&& 直接数字合成(Direct Digital Synthesis)的基本原理是基于取样技术和计算技术,通过数字合成来生成频率和相位对于固定的参考频率可调的信号。其完整的DDS原理框图如图3所示。
&&&& &&& &&&& &&&&&
&&& &&&& &&&& && &&&& &&& &&&& 图3 && & DDS组成原理
&&& 主要由:相位累加器、ROM波形存储器、DAC数模转换器以及低通滤波器组成。整体的工作原理如下:首先相位累加器根据输入的频率控制码输出相位序列,并作为波形存储器RAM的地址,RAM里面可以是预先存放的固定波形的一个周期的幅值编码,也可以是用户在使用过程中存入的任意波形的幅度编码,这样RAM的数据线上就产生了一系列的幅度编码数字信号,然后把该编码经过D/A转换得到模拟的阶梯电压,最后经过低通滤波器使其平滑后即得到所需要的模拟波形。&
频率控制字和时钟频率共同决定着DDS输出信号的频率,频率分辨率正比于系统的时钟,而反比于相位累加器的位数。
它们之间的关系满足:&&&&&&&&
相应的,其频率分辨率为:&&
& (2)相位累加器原理
&&& 如果改变地址计数器计数步进值(即以值来进行累加),则在保持时钟频率和ROM数据不变的情况下,可以改变每周期采样点数,从而实现输出频率的改变。例如:设存储器中存储了个数据(一个周期的采样数据),则地址计数器步进为1时,输出频率,如果地址计数步进为,则每周期取样点数为,输出频率
& (3)DDS的性能
&& DDS信号源输出的信号实际上是以时钟的速率对波形进行取样,从获得的样本值中恢复出来的。根据取样定理,所以。实际中一般取。当时,输出频率最小,。输出频率的分辨率由相位累加器的位数决定,即&。
&&& 例如:参考时钟频率为1GHz,累加器相位为32位,则频率分辨力为0.233Hz。而改变时,其频率分辨力不会发生变化,因此DDS可以解决快捷变换与小步进之间的矛盾。由于D/A、存储器等器件的限制,DDS输出频率的上限不高,目前仍只能达到几十MHz。
&& 5.滤波器原理
&& 滤波器的功能是有选择地让一定频率范围内的信号通过,对此频率范围以外的信号抑制或急剧衰减。在信号处理、数据传输、抑制干扰等方面有广泛的应用,仅仅由RLC元件串联组成的滤波器称为无源滤波器。由RLC元件与运算放大器组成的滤波器称为有源滤波器
(1)一阶无源低通滤波器
&& 一阶无源低通滤波器电路如图4所示,幅频特性如图5所示,其中截止频率?。
&&&&&&&& &&&&& &&&&&&
&&&& & && & && & && 图4 & 一阶无源低通滤波器电路&&&&&&&& 图5 一阶无源低通滤波器幅频特性
& (2)一阶有源低通滤波器
&& 在一阶RC低通滤波器电路的输出端再加上一个同相比例放大电路,就成为一阶有源低通滤波器,不仅具有滤波功能,还能起放大作用。一阶有源低通滤波器电路如图6所示,幅频特性如图7所示,其截止频率&。
&&& &&&& && &&&& &&&&&&
&&&&& &&& &&& &&&& & 图6 & 一阶有源低通滤波器电路&&&&&&&& 图7& 一阶有源低通滤波器幅频特性
&& (3)二阶有源低通滤波器(压控电压源VCVS)
&& 二阶有源低通滤波器电路如图8所示。它是一种具有正相增益的常用二阶低通滤波器电路,运放和它的两个连接电阻、形成一个电压控制电压源(VCVS)。运放的增益为,它为滤波器提供了增益。幅频特性如图9所示,其中截止频率。
&&&& &&&& & & &&
&&&&& &&& &&& &&&& 图8&&& 二阶有源低通滤波器电路&&&&&&&&&& 图9 二阶有源低通滤波器幅频特性
&&& VCVS滤波器具有元件数量少、输出阻抗低、元件间差值范围小和放大能力比较高等优点。而且增益值可用电位器微调、进行精确的调整。VCVS滤波器一般用于品质因数值不高于10的场合。
& (4)二阶有源高通滤波器(压控电压源VCVS)
&& 二阶有源高通滤波器电路如图10所示。滤波器中的运放增益为,也可将开路而短路,让运放构成一个电压跟随器。幅频特性如图11所示。其中截止频率。
&&&&& &&& && &&& &&& &&&
&&&&& && &&& & && &&&& 图10 二阶有源高通滤波器电路&&&&& & 图11&&& 二阶有源高通滤波器幅频特性
&&&&6.实验电路图原理
&& (1)滤波器实验硬件原理
&&& &&&&&&&&&&&
& &&&&&&&&&& &&&&&& &&&&&&&&&&&& 图12 & 滤波器实验板硬件原理图
&& 在滤波器实验电路板SJ-7003 Filter上有四种滤波器,每种滤波器都有3档不同的截止频率,分别是500Hz,5kHz和50kHz。测试信号由实验箱的任意信号源通道的输出(AO1)或外部其他信号发生器提供;滤波后的信号与实验箱的高速采集通道(AI1)连接。
&(2)滤波器实验电路板介绍
&& 滤波器板的选择输入信号时,需要接跳线为SW1,选项如表1,
表1&& SW1跳线选择表
符号所表示选择的信号源
虚拟仪器实验平台SJ8002B的任意信号源(AO1)
外部信号源
&& 滤波器实验板上的四种滤波器是一阶无源低通滤波器、一阶有源低通滤波器、二阶有源低通滤波器、二阶有源高通滤波器。截止频率档位固定的滤波器选择的跳线符号如表2。
&&&&&&&& &&&&&& &&&&&& &&&&&&&& 表2 固定截止频率滤波器档位选择的跳线符号表
滤波后信号输出跳线连接符号
?? 滤波器种类
一阶无源低通滤波器
一阶有源低通滤波器
二阶有源低通滤波器
二阶有源高通滤波器
&& 截止频率可变的滤波器选择的跳线符号如表3
&&&&&&& &&&&&&&&&&&& &&&&&&&&&&&& 表3& 截止频率可变滤波器选择的跳线符号表
改变的电容代号及通道跳线
改变增益的电阻及通道跳线
滤波后信号输出跳线连接符号
一阶无源低通滤波器
一阶有源低通滤波器
二阶有源低通滤波器
S10,C10,S14,C14
二阶有源高通滤波器
C20,S20,C24,S24
五、设计指导
&& 1.结构流程图
&&&&&&&&&&&&&&& &&&&
&&&&&&&&&& &&&&&&& &&&&&& 图13& 频率特性测试仪设计的结构流程图
&& 2.树形图
&&&&&&&&&&&&
&&&&&&&& &&&&&&&&&&&&&&&&&& 图14 &&&&& 频率特性测试仪设计的结构树形图
&&&3.功能与前面板设计
&&&&&&&&& &&&&&&&&&& & 图15&&&& 滤波器频率特性测试前面板说明
& &&&&&& &&&&&&&&&&&&&&&& & && & 表4& 控件及显示按键表格
Buttons>ok Button
Graph Inds>Graph
显示频率特性曲线
Text Inds>Table
扫频时显示
All controls>Ring&Enum>Text&Pict Ring
Text Ctrls>Menu Ring
包括:一阶无源低通滤波器&
一阶有源低通滤波器&
二阶有源低通滤波器&
二阶有源高通滤波器
Buttons>ok Button
启动扫频或者点频程序
Buttons>ok Button
Num Ctrls>Fill Slide
显示扫频进度
Num Inds>Num Ind
扫频方式的峰值幅度
幅度范围0.1~6V
Num Inds>Num Ind
扫频方式的结束频率
频率1Hz~1MHz
Num Inds>Num Ind
扫频方式的频率步进
频率1Hz~1MHz
Num Inds>Num Ind
扫频方式的开始频率
频率1Hz~1MHz
Num Inds>Num Ind
点频方式的峰值幅度
幅度范围0.1~6V
Num Inds>Num Ind
点频方式的频率
频率1Hz~1MHz
All? Controls>Classic Controls>Classic Boolean>Horizontal Switch
选择工作方式
&& 4.动态调用链接
&&& 本程序设计的主要实现已经做成底层fp函数(用Labwindows/CVI实现),在程序实现时可直接调用实验箱提供的驱动函数动态链接(即.dll函数),驱动函数原型及常数和变量在cvidll.prj中。
&&&&&&&&& &&&&&&&&&& &&&&&&&&&&& &&&&& 表5 fp函数说明
void epp_init
初始化EPP接口
Int epp_read_check
检查EPP读数是否正常。&
返回值err为0:EPP可正常读数;&
为8:EPP不能读数。
void find_div(dou ble amp, int *div)
输入信号幅度对采集通道伏格的自动选择
amp&&输入信号幅度。
div&&伏格序号。
void? easy_source (int DDS_channle, double amp, double fr, unsigned char shape,unsigned char ?filter_cw)
根据波形、幅度、频率和滤波控制来启动信号源。
DDS_channle&&信号源通道-1: Aout1通道; 2:Aout2通道; amp&&幅度峰峰值,单位V fr&& 频率值,单位Hz;
shape&&波形&
filter_cw&&滤波频率选择控制字。
void swept generator(int DDS_channle, double fr,)
扫频信号源控制。本函数要结合easy source()一起使用。首先调用easy_source()函数,其中fr设置为扫频的最低频率,然后循环调用本函数,以达到改变频率的效果。
输入值:DDS_channle&&信号源通道:其中1: Aout1通道;2:? Aout2通道。&
fr&&频率值,单位KHz
void find timebase (double signal_fr, int *timebase)
根据输入信号频率,选定时基
signal_fr&&波形的频率
timebase&&时基序号
void process vpp kfr(unsigned char data(),int points,double signal fr,int div,int imebase, doubul *vp)
根据采集的参数设置,计算信号的峰峰值
六、调试与测试
&&&1.程序调试。
&& (1)按如图方式,进行硬件连线。
&&&&&&&&&&&&&&&
& &&&&&&&&&&&&&&&&&& 图28&& 滤波器频率特性测试仪实验的硬件连线
&& (2)启动程序,选择&扫频&工作方式,完成开始频率、频率步进、结束频率、峰值幅度的设定,选择&一阶无源低通滤波器&的滤波方式,按照面板上的提示,连接滤波板上的跳线,同时注意使截止频率在开始频率和结束频率之间。点击启动按键。
& (3)观察此时外部示波器上的正弦信号的频率变化,以及幅度。
& (4)打开&数字存储示波器&程序,观察此时1、2路通道信号的频率,幅度。
& (5)观察程序面板上显示的扫频滤波过程。
& (6)选择其他3种滤波方式,重做(2)~(5)的实验步骤。
& (7)选择&点频&工作方式,重做上述步骤。
&&&2.实验观测和数据记录
& (1)完成扫频方式的实验,并填写下表
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 表6&& 扫频测量一阶无源低通情况
滤波器类型
一阶无源低通滤波器
理论截止频率&
峰值幅度(V)
开始频率(KHz)
结束频率(KHz)
频率步进(KHz)
记 录 数 据
表7&& 扫频测量一阶有源低通情况
滤波器类型
一阶有源低通滤波器
理论截止频率(KHz)
峰值幅度(V)
开始频率(KHz)
结束频率(KHz)
频率步进(KHz)
记 录 数 据
表8&& 扫频测量二阶有源低通情况
滤波器类型
二阶有源低通滤波器
理论截止频率(KHz)
峰值幅度(V)
开始频率(KHz)
结束频率(KHz)
频率步进(KHz)
记 录 数 据
表9&& 扫频测量二阶有源高通情况
滤波器类型
二阶有源高通滤波器
理论截止频率(KHz)
峰值幅度(V)
开始频率(KHz)
结束频率(KHz)
频率步进(KHz)
记 录 数 据
(2)完成点频方式的实验,并填写下表
表10&& 点频测量一阶无源低通情况
滤波器类型
一阶无源低通滤波器
输入信号峰值幅度(V)
理论截止频率
记 录 数 据
表11&&& 点频测量二阶有源低通情况
滤波器类型
二阶有源低通滤波器
输入信号峰值幅度(V)
理论截止频率
记 录 数 据
&& 选择点频测量时,点频输入频率范围是1Hz~1MkHz,信号峰值范围0.1V~6V。&
&& 选择扫频测量时,扫频输入频率范围是100Hz~1000kHz,信号峰值幅度范围0.1V~6V。在二阶有源高通滤波器的测试时,开始频率设定值要小于0.2kHz。
关键字:&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
网友正在学习IC视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书查看: 13021|回复: 28
我用定时器捕获来测频率,高频倒是挺准的,低频为什么不准呢?
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
我把定时器的PSC设为0,也就是72M频率。
arr设为最大0XFFFF。然后进行捕获下降沿
从&&TIM2-&CCR1;TIM2-&CCR2& 分别读出方波的周期和占空比
再进行计算。60KHZ的误差较小,实测为60150,误差在我的允许范围内。
就是低到1KHZ就不行了,应该是重载溢出了。这怎么解决呢
主题帖子精华
金钱128932
在线时间1149 小时
做溢出处理
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
实际可以测到400-60K。误差小于0.5%。再想往高,往低测就测不到了
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【2楼】正点原子:
---------------------------------
怎么个溢出处理?
主题帖子精华
在线时间5 小时
回复【4楼】a:
---------------------------------
。。。。计溢出了多少次。。。。
if一个定时器的溢出中断就可以了。
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【5楼】lsj9383:
---------------------------------
回复【5楼】lsj9383:
---------------------------------
是啊,我是计数溢出中断的。测高频的时候计数器又不会溢出。可是计算的不对
if(TIM2-&SR&0X0001)//溢出中断
OV_count++;
if(OV_count&100)
OV_count=0;
TIM2-&SR&=~(1&&0);//清除中断标志位&&
主题帖子精华
在线时间5 小时
是不是换算成时间的时候有点问题?
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【7楼】lsj9383:
---------------------------------
我计算溢出和捕获是用同一个定时器。这样可以吗?
我的频率是24M,重载值是65535.
所以我计算的是&&&频率=24M/(捕获时测的TIM2-&CCR1+65535*溢出的次数)
这样应该对吧?
主题帖子精华
在线时间5 小时
嗯..可以是同一个定时器
嗯...你直接就用第一次捕获的时间了吗....我感觉应该用两次捕获的时间相减才可以算吧....
因为不知道单片机开始工作的时候,波处于什么状态。
除非你那个波是单片机自己发出的....
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【9楼】lsj9383:
---------------------------------
我是测一个方波的两个下降沿之间的时间,求出频率的。频率精确度还在我的允许范围之内,
就是溢出中断,我在溢出中断里设置了一个变量,用变量计溢出次数。然后在低频段可以了。
但是频率加高,就不会溢出了,可是计数变量却怎么清不掉。导致了频率计算错误
主题帖子精华
在线时间5 小时
回复【10楼】a:
---------------------------------
。。。。不是吧,为啥会清不掉....
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【11楼】lsj9383:
---------------------------------
因为在低频时定时器会溢出,然后计数溢出次数。
在高频时候,捕获定时器也会溢出。这样溢出次数就乱掉了
不懂怎么弄啊,-&-
主题帖子精华
在线时间5 小时
高频溢出的原因是什么呢
是正常溢出的话&照样可以算时间啊,
捕获到了就暂时把定时器给停了嘛、
计算完频率后把该清理的变量给清理了,再打开定时器啊?
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【13楼】lsj9383:
---------------------------------
我也是按这个流程想的,你看看我的中断程序,对不
//定时器2中断服务程序&&
void&TIM2_IRQHandler(void)
{&&&&&&&&&&&&&&&&&&
&&&&//捕获处理
&&&&if(TIM2-&SR&0X0002)
&&&&{
if(cap_flag==0)
LED1=!LED1;
TIM2-&CR1&=0x00;&&&&//关闭定时器2
OV_count=0;
&&&&IC1Value=TIM2-&CCR1;&
&&&&Frequency&=&/(IC1Value);
cap_flag=0;
TIM2-&CR1|=0x01;&&&&//使能定时器2
if(cap_flag==1)
LED0=!LED0;
TIM2-&CR1&=0x00;&&&&//关闭定时器2
&&&&IC1Value=TIM2-&CCR1;&
&&&&Frequency&=&/(IC1Value);
OV_count=0;
cap_flag=0;
TIM2-&CR1|=0x01;&&&&//使能定时器2
TIM2-&SR&=~(1&&1);//清除中断标志位
&&&&}
if(TIM2-&SR&0X0001)//溢出中断
OV_count++;
cap_flag=1;
TIM2-&SR&=~(1&&0);//清除中断标志位&
主题帖子精华
在线时间5 小时
嗯...感觉上....怎么是一捕捉到就会进行算频率的处理啊,因为&cap_flag=多少都会算Frequency....
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【15楼】lsj9383:
---------------------------------
捕获到了说明这方波的一个周期结束了,所以进行计算
捕获到了先判断是不是有溢出过,没溢出过就说明是较高频率的,把定时器关掉,防止定时器溢出,然后计算
如果是溢出过的,说明是低频信号,计算出溢出次数,再计算。可是这样还是不行
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【15楼】lsj9383:
---------------------------------
谢谢啊,跟帖跟那么多次,我都不好意思
主题帖子精华
中级会员, 积分 400, 距离下一级还需 100 积分
在线时间0 小时
回复【17楼】a:
---------------------------------
首先,不要配置从模式控制器在捕获成功时复位计数器,这样就不会在收到捕获中断的同时出现溢出中断。
其次,你需要把ARR参数配置为其最大值0xFFFF,这样可以得到最少的溢出中断。
这样配置后,如果在中断程序中发现捕获中断与溢出中断同时出现,则可能有下述两种情况:
1)捕获中断先于溢出中断出现:此时读出的捕获数值CCR应该是一个接近0xFFFF的数值,这样测量的周期就是(溢出中断累计次数*0x10000+CCR)。
2)捕获中断晚于溢出中断出现:此时读出的捕获数值CCR应该是一个接近于0的数值,这样测量的周期就是((溢出中断累计次数+1)*0x10000+CCR)。
主题帖子精华
在线时间5 小时
回复【17楼】a:
---------------------------------
嗯...没关系,我也是刚入门而已~
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【18楼】shuilian007:
---------------------------------
很奇怪,我仿真测试,
方波来的第一个上升沿,不管是高频还是低频都会检测到。
然后为什么高频信号也会先溢出,然后又捕获到。
按道理应该是,连续捕获到两次再溢出才对啊
主题帖子精华
中级会员, 积分 427, 距离下一级还需 73 积分
在线时间0 小时
回复【20楼】a:
---------------------------------
这是我的配置程序
int&&main(void)
{
&&&&&&&&Stm32_Clock_Init(9);&//系统时钟设置
&&&&&&&&delay_init(72);//延时函数初始化&
&&&&&&&&uart_init(72,9600);
&&&&&&&&Capture_Init(0xffff,0);&&&&//设2,三分频,65535溢出。可以测370HZ以上。
&&&&&&&&LED_Init();
&&&&&&&&while(1)
&&&&&&&&{
//&&&&&&&&&&&&&&&&Frequency&=&/(IC1Value+OV_count*65535);
&&&&&&&&&&&&&&&&DutyCycle&=&(IC2Value*100)/IC1V//占空比=(IC2Value/IC1Value)*100;
&&&&&&&&&&&&&&&&printf(&Frequency&=&%d\r\n&,Frequency);
//&&&&&&&&&&&&&&&&printf(&DutyCycle&=&%d\r\n&,DutyCycle);&
&&&&&&&&}
}
void&Capture_Init(u16&arr,u16&psc)
{
&&&&&&&&//此部分需手动修改&IO口设置&&
&&&&&&&&RCC-&APB2ENR|=1&&0;&&&&//&&
&&&&&&&&RCC-&APB1ENR|=1&&0;&&&&&&&//TIM2&时钟使能&
&&&&&&&&RCC-&APB2ENR|=1&&2;&&&&//使能PORTA时钟&
&&&&&&&&
&&&&&&&&TIM2-&ARR=&&//设定计数器自动重装值//刚好1ms&&&&
&&&&&&&&TIM2-&gtSC=&&//预分频器,
&&&&&&&&GPIOA-&CRL&=0XFFFFFFF0;//PA0&输出&&
&&&&&&&&GPIOA-&CRL|=0X;//复用功能输出&&&&&&&
&&&&&&&&GPIOA-&ODR|=1&&0;//PA0&上拉
&&&&&&&&
//&&&&&&&&TIM2-&SMCR|=0x0040;&
&&&&&&&&TIM2-&CCMR1|=1&&0;//CC1S=01&选择输入端&
&&&&&&&&TIM2-&CCER|=0&&1;&//CC1P=0&选择有效转换边沿&&上升沿有效
&&&&&&&&TIM2-&CCMR1|=0&&2;&//IC1PS=00&配置输入分频&无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获
&&&&&&&&TIM2-&CCMR1|=0&&4;&//IC1F=0011配置输入滤波器
&&&&&&&&TIM2-&CCER|=1&&0;&//CC1E=1&允许捕获计数器的值到捕获寄存器中
&&&&&&&&TIM2-&DIER|=1&&1;&&&//允许更新捕获中断&
&&&&&&&&TIM3-&DIER|=1&&0;&&&//允许更新中断&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//&&&&&&&&TIM3-&DIER|=1&&6;&&&//允许触发中断&&&&&&&&&&&
&&&&&&&&TIM2-&CR1|=0x01;&&&&//使能定时器2
&&&&&&&&MY_NVIC_Init(1,3,TIM2_IRQChannel,2);//抢占1,子优先级3,组2&&&&&&&&&&
}
u32&&&OV_count=0;
u32&&&cap_
u32&&&old_cap=0;
u32&&&new_cap=0;
u32&&&cap_diff=0;
//定时器2中断服务程序&&
void&TIM2_IRQHandler(void)
{&&&&&&&&&&&&&&&&&&
&&&&&&&&//捕获处理
&&&&if(TIM2-&SR&0X0002)
&&&&{
&&&&&&&&&&&&&&&&TIM2-&SR&=~(1&&1);//清除中断标志位&&&&&&
&&&&&&&&if(1==cap_count)&&&&&&&&//捕获频率
&&&&&&&&{&&&&&&&&
&&&&&&&&&&&&&&&&OV_count=0;
&&&&&&&&&&&&&&&&old_cap=TIM2-&CCR1;&&&&&&&
&&&&&&&&}
&&&&&&&&else&if(cap_count&10)
&&&&&&&&{
&&&&&&&&&&&&&&&&new_cap=TIM2-&CCR1;
&&&&&&&&&&&&&&&&cap_diff=new_cap-old_cap+65535*OV_&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&Frequency=/cap_//这里是对10次捕获求平均值
&&&&&&&&&&&&&&&&cap_count=0;
&&&&&&&&&&&&&&&&OV_count=0;
&&&&&&&&}
&&&&&&&&&&&&cap_count++;&&&&&&&&&&&&&&&&
&&&&}
&&&&&&&&if(TIM2-&SR&0X0001)//溢出中断
&&&&&&&&{
&&&&&&&&&&&&&&&&OV_count++;
&&&&&&&&&&&&&&&&TIM2-&SR&=~(1&&0);//清除中断标志位&&&&&&
&&&&&&&&}
}
主题帖子精华
在线时间5 小时
GPIOA-&CRL&=0XFFFFFFF0;//PA0&输出&&&
GPIOA-&CRL|=0X;//复用功能输出
我建议将此位改成输入&改成8.......&&&&&&
主题帖子精华
新手入门, 积分 21, 距离下一级还需 -1 积分
在线时间0 小时
&& 这个问题我最近解决了,在定时器前预分频下就行了,还有,我们老师说,高频有上限,但低频肯定测得了的
主题帖子精华
新手入门, 积分 48, 距离下一级还需 -28 积分
在线时间0 小时
回复【23楼】孙磊:
---------------------------------
请问你是直接进行预分频的吗,为什么我进行了预分频后直接就检测不到频率了,高频也检测不到了
主题帖子精华
初级会员, 积分 51, 距离下一级还需 149 积分
在线时间0 小时
求楼主发一份资料,小弟感激不尽
主题帖子精华
新手入门, 积分 39, 距离下一级还需 -19 积分
在线时间0 小时
回复【14楼】a:你的F&是什么型的?
---------------------------------
主题帖子精华
初级会员, 积分 129, 距离下一级还需 71 积分
在线时间14 小时
回复【3楼】a:
---------------------------------
楼主可以共享一下最后调试低频测量成功的代码吗,才入门,对定时器的一些操作不清楚,想学习一下经验,或者直接发QQ:也行
Y123Y 该用户已被删除
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子精华
中级会员, 积分 380, 距离下一级还需 120 积分
在线时间69 小时
回复【13楼】lsj9383:
---------------------------------
我也是按这个流程想的,你看看我的中断程序,对 ...
是不是数据类型的问题
Powered by}

我要回帖

更多关于 观察心肌细胞跳动频率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信