频率是单位时间内周期性过程重复、循环或震动的次数,记为f。因此,某一信号在T秒内变化了N次,可知该信号的频率为:f=N/T。下图是电子计数式频率计的原理框图,它主要由四部分组成。
计数脉冲形成电路:该部分的作用是将被测的周期信号经过放大、整形后转换成可计数的脉冲。
时间基准T产生电路:这部分的作用是提供准确的计数时间T,又称为闸门(时间)脉冲。
计数电路:这部分的作用是计数被测周期信号的重复次数。时间基准产生电路产生闸门脉冲,只有在闸门脉冲持续的时间T内,才允许被测信号输入到计数电路进行计数。
波形图
显示电路:该部分的作用是将测量的结果直观的显示出来。
由于单片机的广泛应用,而且单片机的功能也越来越强大,因此电子计数式频率计的开发也转移到以单片机为核心的基础上。现在的单片机基本上都带有一个以上的定时/计数器功能模块,因而单片机内的定时/计数器功能模块就成了实现时间基准产生电路和计数电路功能的酋选,以代替传统的以分立元件构成的电路功能模块。其中,单片机的定时/计数器功能模块的计数器功能,几乎是开发人员做为计数电路的独一无二的选择i时间基准T产生电路的实现也往往是依赖单片机的定时/计数器功能模块的定时器功能,本文将介绍一种基于MSP430系列单片机来产生时间基准和计数电路功能的新方法。
MSP430系列单片机是美国德州仪器(TI)公司的一类超低功耗的16位单片机。它采用RISC内核结构,将大量外围模块如看门狗、A/D转换器等集成到片内。
利用看门狗实现时间基准产生电路功能
看门狗定时器(WDT)是MSP430系列单片机中用于系统监测和内部定时使用的一种模块,是一个16位的计数器,有看门狗和定时器两种模式,有8种可选的定时时间。在本文中是将看门狗定时器( WDT)当做内部定时器,然后根据测量的实际需要将看门狗定时器(WDT)设定在8种可选的定时时间之一(本文中为1000ms),作为时间基准T,即闸门脉冲持续的时间。
当MSP430系列单片机的某一端[检测到被测脉冲电平的跳变沿(上升沿利下降沿都可以),就开启看门狗的定时功能,同时开始对被测信号进行计数。当看门狗的定时时间到,即闸门脉冲的持续时闻T(时间基准T),就进入看门狗的中断服务程序并停止对被测信号的计数,由霍门狗的中断服务程序调用显示程序子程序显示被测信号频率。
这里有一个值得探讨的问题就是时间基准T的精确度,笔者认为单片机的看门狗电路的时间精度应该比较高,否则看门狗电路很难应用于系统监测和内部定时。
关键字:频率计 中断
引用地址:
电子计数式频率计原理 看门狗端口中断实现计数电路功能
推荐阅读最新更新时间:2024-11-16 22:48
STM32中断函数名
和普通的ARm裸板开发不同。使用stm32库函数编程时,中断函数名是固定死的。 具体函数名可以在启动文件startup_stm32fxxx_xd.s的Vector Table Mapped(中断函数向量表)中查看。 启动文件 startup_stm32fxxx_xd.s里面都是汇编代码 ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __V
[单片机]
STM32 Timer1 TIM1 中断
/*定时器1ms中断,死等定时器延时*/ /*File Timer.c */ #include stm32f10x.h unsigned int TimeDelay = 0; void TIM1_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_DeInit(TIM1); /*复位TIM1定时器*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /*开时钟*/ TIM_Tim
[单片机]
S3C2440无MMU_Init不能进中断的原因
纠结了一个下午,总算有些头绪了,所谓MMU(虚拟内存管理单元),无非就是把物理地址转换为虚拟地址。所谓物理地址,用的STM32的都知道,它的RAM是从0x20000000开始的,ROM是从0x8000000开始的,这就是物理地址,也就是说在0x20000000这个地址里面放的就是一个值(当然你放的是几,里面存放的就是几),你给RAM一个地址0x20000000并给了读信号,数据线上就会出现你放进去的值,这就是实实在在的物理地址。而虚拟地址,就和它的位段有些相似,你访问的地址,并不是真正的物理介质里面的地址。你访问一个地址,比如0x20,可能会被MMU映射到0x80里面去了,在开启MMU之后,你写了一条指令,往0x20这个地址里面写了
[单片机]
#51单片机# 用中断实现蜂鸣器
蜂鸣器常作为提示音,用于计算机、打印机、万用表等设备中。提示音一般很简单,能响就行。 某单片机的蜂鸣器原理图: 该单片机的CPU原理图: 下面这段程序用到了中断的算法,实现了蜂鸣器在4kHz和1kHz频率下的发声。 #include reg52.h sbit Buzz = P0^7;//蜂鸣器控制引脚 unsigned char T0RH = 0;//T0重载值的高字节 unsigned char T0RL = 0;//T0重载值的低字节 void StartBuzz(unsigned int frequ); void StopBuzz(); void main() { unsigned int
[单片机]
STM32的Cortex-M3中断异常处理
前段时间用STM32F103VBT6写了一个中断的函数,借此机会想了解下STM32的中断机制,用过之后发现STM32的中断配置相当灵活,稳定行很高,测试发现几乎没出过什么差错。我在程序里开了三个中断,一个计数器用于精确延时用,另外两个为外部事件处理中断,下面一一详细介绍,方便初学者入门。 在进行STM32中断配置之前首先需要了解下它的中断部分: 一、Cortex-M3中断机制 在STM32处理器中有43个可屏蔽中断通道(不包含 16个 Cortex?-M3的中断线)。共设置了16个可编程的优先等级(使用了 4位中断优先级);它的嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和有效处理地处理
[单片机]
STM32中CAN错误中断1
void can_signal(void) { unsigned char data can_irq; unsigned char data temp; x_wdgtime(); can_irq = InterruptReg; if(can_irq&ALI_Bit) { // 仲裁丢失位 ++al_counter; temp=ArbLostCapReg; // 读仲裁丢失寄存器 alc_current=temp&0x1F; // 获得当前仲裁丢失的位置 } if(can_irq & BEI_Bit) { // 总线错误中断 temp=ErrCodeCapReg; buse_current=temp&0x3
[单片机]
罗德与施瓦茨公司推出R&S RTM示波器系列新的200MHz型号
特别针对大学及教育机构,罗德与施瓦茨公司设计了R&S RTM示波器系列的新的200MHz型号。教育模式用于测试与测量练习,并且能够停用示波器的所有分析工具(如自动设置和一键测量)和自动测量功能。这样就能提高学习效果,因为学生和学习者不得不自己动手计算测量结果。此模式采用密码保护,并且同样可以用于R&S RTM家族的其他带宽型号上。
R&S RTM同样非常适合于研发、生产及服务中的通用测试测量应用。选购R&S RTM B200,B201或B202带宽升级选件,可将低带宽型号进行带宽升级以满足未来的需求,带宽可最大升级到500MHz。新的R&S RTM-K32数字电压表选件使得R&S RTM能以3位的精度测量多种参数,如AC、
[测试测量]
基于ARM处理器的MVB 2类设备研究
1 引 言 列车需要传输大量的设备控制和旅客服务信息,随着这些信息的数量和种类不断地增长,迫切需要一种大容量,高速度的信息传输系统。为此,国际电工委员会(IEC)制定了一项用于规范车载设备数据通信的标准——IEC61375(列车通信网标准),即TCN标准,该标准于1999年6月成为国际标准。目前国际上主要的TCN产品供应商是德国西门子和瑞士Duagon公司,国内的株洲电力机车研究所和大连北车集团电力牵引研究所等单位进行了大量的TCN相关研究工作并取得了丰硕的科研成果。 TCN标准推荐在机车上层使用绞线式列车总线WTB,在下层使用多功能车辆总线MVB。MVB总线和机车中的各种电气设备相连,这些设备按性能可以分为5类,其中二类设备
[应用]