使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题

发布者:月光男孩最新更新时间:2018-11-21 来源: eefocus关键字:stm8  单片机  外部计数  测脉冲  软件配置 手机看文章 扫描二维码
随时随地手机看文章

本人在大四工作实习期间,由于工作需要,需要使用STM8单片机测量一个方波脉冲的频率,一开始想要使用定时器捕获,可是需要测量的脉冲频率较高,用捕获测量不仅测量不准确,而且效率低下。于是乎想到了用外部计数TIMx_ETR功能测量!


真正的问题来了,之前从来没用过STM8的外部脉冲计数功能,而且网上也是在找不到如何配置外部脉冲计数模式。而公司的进度还在不断的向前赶,更蛋疼的是STM8的绝大多数资料手册全是英文版的,不像STM32单片机那样有很多中文版。这下可急坏了笔者。可还是硬着头皮连夜加班的看英文文档。


经过2天的努力煎熬,笔者终于找到了解决方法,那个兴奋啊,无以言表。接下来话不多说,赶紧向广大网友分享STM8单片机的TIMx_ETR的配置技巧:


1:其实STM8单片机的TIMx_ETR功能对STM8S系列和STM8L系列的配置方法是不相同的;STM8S是标准版,而STM8L是低功耗版;


对于STM8S系列的外部计数配置,需要通过向FLASH内修改选项字节来激活TIMx_ETR的重映射功能,通过查看手册的“选项字节”那部分就可以发现,在STM8S的4803h地址的重映射选项里有个选项字节叫OPT2,当向OPT2字节写入0X20时,便可以将PB3引脚映射为TIMx_ETR外部脉冲计数功能引脚。配置完选项字节之后另外还有一个值得注意的问题是:此时该PB3引脚的管脚必须配置成“上拉输入且无外部中断”,即库函数里的 GPIO_Init(GPIOB, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);这一句。现附程序如下所示:


{


TIM1_DeInit();


CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);// 开启定时器2的时钟,


FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁


while(FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET);


FLASH_ProgramOptionByte(0x4803,0x20); //选项字节,向0X4803地址写入0X20


u8 status;


status=FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);


if(status==FLASH_STATUS_SUCCESSFUL_OPERATION)


{}


FLASH_Lock(FLASH_MEMTYPE_DATA);


TIM1_ETRClockMode2Config(TIM1_EXTTRGPSC_DIV2, 


TIM1_EXTTRGPOLARITY_INVERTED,0x00); //外部计数配置


TIM1_TimeBaseInit(1,TIM1_COUNTERMODE_UP,9999,0);


TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);


TIM1_SetCounter(0x0);


TIM1_ClearITPendingBit(TIM1_IT_UPDATE); //参考库


TIM1_Cmd(ENABLE);


}


2:然而不是所有STM8单片机都需要改选项字节,对于STM8L系列单片机就不必修改选项字节,直接配置即可,附程序代码如下:


TIM2_DeInit();


CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);// 开启定时器2的时钟


TIM2_ETRClockMode2Config(TIM2_ExtTRGPSC_DIV2, 


TIM2_ExtTRGPolarity_Inverted,0x00);


TIM2_TimeBaseInit(TIM2_Prescaler_1,TIM2_CounterMode_Up,9999);//需不需要加?


TIM2_ITConfig(TIM2_IT_Update,ENABLE);


TIM2_SetCounter(0x0);


TIM2_ClearITPendingBit(TIM2_IT_Update); //参考库


TIM2_Cmd(ENABLE);


希望能帮助到你!


关键字:stm8  单片机  外部计数  测脉冲  软件配置 引用地址:使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题

上一篇:单片机编程技巧--功能强大的时钟中断
下一篇:关于单片机连接ESP8266模块截取其回显内容

推荐阅读最新更新时间:2024-03-16 16:17

基于STC单片机的机场车辆超速报警系统设计
随着民航业的发展,航空器的数量不断增多,地面保障车辆随之增加,加之机场车辆行驶速度过快,导致刮碰飞机的不安全事件时有发生,直接影响了飞机的持续适航,严重危及航空公司的运行安全,同时也造成了一定的经济损失。为了减少此类不安全事件的发生,本设计利用单片机实现车辆的超速报警来提醒司机减速行驶,并将超速情况实时记录下来作为评价车辆驾驶员的依据之一,以便于对员工进行管理。 1系统的硬件设计 1.1系统功能 系统实现的主要功能如下: (1)按键调整时间以及实时显示时间; (2)实时显示车辆行驶的速度; (3)当车辆超过规定的速度值时,违规情况以数据形式保存在串行存储器中,并发出声音警报,同时警报灯闪烁; (4)管理人员使用IC卡
[单片机]
51单片机 基于方式1的单工通信
本实验主要是U1通过串口线TXD端将流水灯控制码以方式1发送到单片机U2的RXD,U2再利用接受的控制码控制流水灯点亮其P1口的8个发光二极管 单片机U1发送端 首先建立建立一个文件夹send,之后建立工作send,再添加一个send.c源文件,代码如下 #include reg51.h unsigned char code Tab ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void Send(unsigned char dat) { SBUF=dat; while(TI==0) //若发送中断标志位没有置 1 ,就等待 {
[单片机]
飞思卡尔16位单片机(九)——ECT模块测试
一、ECT模块介绍 XEP100单片机的增强型捕捉定时器模块(ECT)是在标准定时器模块(TIM)的基础上增加了一些功能而发展起来的定时器模块,ECT特别适合汽车的ABS、ESP等系统的应用。ECT模块包括一个16位的可编程的计数器,ECT有多种功能,最主要的功能是:输入捕捉(IC)、输出比较(OC)、脉冲累加(PAI)和模数递减计数(MDC)。本文主要对最常用的输入捕捉和输出比较功能进行研究。下图为ECT模块的功能框图。 ECT模块有8个输入捕捉和输出比较通道。当通道设置为输入时,通道具有输入捕捉功能。输入捕捉功能可以测量输入的脉冲信号的一些特征。可以测量脉冲的周期、占空比和频率等特征。 输入捕捉通道由4个缓冲通道IC0
[单片机]
飞思卡尔16位<font color='red'>单片机</font>(九)——ECT模块测试
pic16f887单片机用AD590高精度测温的电路和程序
一、 前言 AD590 为Analog Devices 公司出品的一种双端温度转换电流源的单晶IC。图为AD590内部的线路结构,及其二种常用的包装。 二、原理与暂存器设定说明 原理: AD 590是一个良好的温度-电流转换的感测元件,具有良好的线性关系,其转换率为1μA/°K。 􀂄图(左边)所示为AD 590转换电路,其输出转换率有100mV/°C(Vo15)输出。由于AD 590之转换率为1μA/°K。因运算放大器具有极高的输入阻抗,极小的输入电流的特性,使得AD 590电流完全流过R2与R3,故U1 的输出电压为1μA/°K.(R2+R3),当调整R2使得R2+R3=10KΩ时,U1 的输出电压为
[单片机]
pic16f887<font color='red'>单片机</font>用AD590高精度测温的电路和程序
单片机 AT89C51 汇编语言编写报警信号程序
用 P1.0 输出 1KHz 和 500Hz 的音频信号驱动扬声器,作报警信号。 要求 1KHz 信号响 100ms,500Hz 信号响 200ms,交替进行。 ;用 P1.0 输出 1KHz 和 500Hz 的音频信号驱动扬声器 ;要求 1KHz 信号响 100ms,500Hz 信号响 200ms,交替进行 ORG 0000H JMP MAIN ORG 0030H MAIN: CALL BP1K CALL BP500 SJMP MAIN ;------------------------- BP500: MOV R6, #200 BP50: CPL P1.0 CALL D
[单片机]
用8位单片机实现串口-以太网转换器
    摘要: 用8位单片机8031和ISA总线网卡,实现RS485串行设备与以太网的连接,以传送控制信令和数据文件。程序设计采用C51语言,便于移植和调试。     关键词: 以太网 串行通讯 单片机 C51 单片机或微控制器(MCU)(也称为嵌入式系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以MCU为核心,与监测、伺服、指示设备配合实现一定的功能。以太网是当今最受欢迎的局域网之一,现已成为社会重要的基础信息设施,是信息流通的重要渠道。如果嵌入式系统能够连接到Internet,则可以方便、低廉地将信息传送到世界上的任何一个地方。 将嵌入式系统与Internet相连的主要困难在于:Inter
[网络通信]
IAR调试stm8的优化设置
本来想使用iar的debug功能,通过st-link调试stm8板子,查看一下变量的值,结果死活看不到结果有变化,一直显示不可用,当时我就纳闷了,这他娘的是咋回事? 没办法,上网搜吧,于是发现,原来是跟编译的优化级别有关系,默认的优化级别是low,把它改成None,然后单步就能看到变量的值了。 调整完优先级就可以看到变量的值了。
[单片机]
基于STC89C55RD+单片机的LED点阵显示系统的设计
  摘要:基于 STC89C55RD+单片机的在应用可编程功能,设计了一个 LED点阵显示系统。该系统采用了上—下位机的结构构建,上位机 PC可通过串行通信接口实现对下位机 LED点阵系统显示内容的控制。下位机以 LED屏的显示电路和单片机控制电路为核心,在没有外扩程序存储器和数据存储器的情况下,直接利用该单片机大容量的数据 flash区,通过在应用可编程功能实现多条信息的实时发布、擦除和修改。 1 引言   在车站、商场、学校等一些需要发布多变的实时信息或进行广告宣传的场所,黑板、纸张或是霓虹灯广告牌这些传统的媒介手段,不论是在显示效果还是可修改性上都已无法满足当前的需求。而 LED点阵显示屏具有耗电省、成本低、寿命长、占用
[家用电子]
基于STC89C55RD+<font color='red'>单片机</font>的LED点阵显示系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved