单片机产品设计与调试——基于STM32F1xx机型和HAL库函数 教案 项目6、利用计数器实现工件计数显示和打包控制.doc

单片机产品设计与调试——基于STM32F1xx机型和HAL库函数 教案 项目6、利用计数器实现工件计数显示和打包控制.doc

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE19

项目6、利用计数器实现工件计数显示和打包控制

项目总目标

看懂STM32内部定时器的计数路径;

掌握利用外部时钟模式1、外部时钟模式2以及更新中断实现脉冲计数的软硬件设计方法。

具体工作任务

利用STM32单片机的外部时钟模式1外部时钟模式2,实现生产线工件计数显示与控制任务。

图6.0.1生产线工件计数显示器示意图

任务6.1利用外部时钟模式1实现生产线工件计数显示

一、任务目标

任务目标:初步掌握用外部时钟模式1和TIMx_CH引脚,实现脉冲计数的方法。

具体工作任务:利用STM32单片机的外部时钟模式1和TIMx_CH引脚,进行生产线工件检测,要求每过一个工件,计数值加1并显示,满100个自动清0,并重新开始计数。

二、学习与实践

讨论与发言

请结合项目4和项目5,谈一谈本任务的设计思路。

请阅读以下资料并按照指示的工作顺序完成任务。

(二)通用定时器的结构再认识

1、外部时钟模式1路径

图6.1.1通用定时器的TIMx_CH1和TIMx_CH2的外部时钟模式1路径

在项目5中,我们已经使用过内部时钟模式(InternalClockMode)实现定时控制和PWM输出。本任务中我们将使用外部时钟模式1(ExternalTriggerClockMode1)实现对传感器输入的脉冲进行计数。

从图6.1.1可以看出,内部时钟模式下,控制器的输入脉冲来自CK_INT,也就是TIMxCLK;外部时钟模式1情况下,控制器的脉冲则来自TRGI(TriggerInput,触发输入)。

在项目5中,我们曾使用TIMxCH1~TIMx_CH4引脚做PWM输出。这四个引脚被表达在图6.1.1的右侧,作为OC1~OC4的输出引脚。但你一定很早就注意到在图的左侧,也有四个同名的引脚TIMxCH1~TIMx_CH4。将引脚画在左侧,代表做输入,做TI1~TI4的输入引脚(TriggerInput)。本任务中我们只研究TI1和TI2。

要实现工件计数任务,可将光电传感器输入的脉冲接在TIMx_CH1或TIMx_CH2引脚上。

通过编程,可以使输入脉冲信号按照如下三条路径进入CNT计数器:

路径1:TIMx_CH1→TI1→TI1FP1→TRGI→CK_PSC→CK_CNT

路径2:TIMx_CH1→TI1→TI1F_ED→TRC→TRGI→CK_PSC→CK_CNT

路径3:TIMx_CH2→TI2→TI2FP2→TRGI→CK_PSC→CK_CNT

当然,从图6.1.1可以看出,外部时钟模式1即TRGI的来源不止这三条,本任务中我们只研究这三条。在这三种情况下,计数脉冲来自外部引脚,CNT计数器对外部脉冲(而不是内部脉冲CK_CNT)进行计数。通过读取计数值,就可以知道来了多少个脉冲;通过计数值与ARR值的比较结果,就可以知道输入脉冲是否达到了预定的数量,这就是TIM进行外部脉冲计数的原理。

2、计数过程

如图6.1.1,来自TIMx_CH1和TIMx_CH2引脚的外部脉冲经过了多路开关、输入滤波/边沿检测、控制器、PSC预分频器被送入CNT计数器。计数过程中还使用到ARR寄存器。关于控制器、PSC预分频器、ARR等设备的作用在项目5中我们已经学习过,这里只看多路开关、输入滤波和边沿检测电路。

多路开关

多路开关常常具有多个输入和1个输出。输出来自哪个输入取决于编程设置。例如可以通过编程设置TI1来自TIMx_CH1还是来自异或门。也可以设置TRC信号来自ITR或TI1F_ED。

(2)输入滤波

功能:输入滤波器用于滤掉叠加在输入信号中的干扰。过滤掉干扰信号后的理想波形如图6.1.2所示。

图6.1.2过滤掉干扰后的理想波形

设定值:滤波系数可编程设定,允许范围是0~15。

滤波系数=0,不滤波;滤波系数=15,滤波能力最强。

滤波系数不同,滤掉干扰信号的频率范围不同。本项目暂不考虑滤波系数的选择方法,将滤波系数设为0。

(3)边沿检测

功能:边沿检测用于决定是对输入信号的上升沿还是下降沿进行检测,可编程设定。例如希望输入信号每来一个上升沿进行计数,就应将其设置为上升沿触发。

图6.1.3设置为上升沿触发、加计数、PSC不分频、ARR=3

图6.1.4设置为下降沿触发、加计数、PSC不分频、ARR=3

如图6.1.3所示,如果指定对输入信号的上升沿进行检测,并且PSC不分频、加计数模式、ARR=3,则输入引脚上每来1个上升沿,经定时器时钟CK_INT同步后,CK_CNT输出1个脉冲,计数值加1;计数值加到4自动重装为0;重装时,发出更新中断请求。

如图6.1.4所示,如果指定对输入信号的下降沿进行检测,其它不变,则输入引脚上每来1个下降沿,计数值加1;计数值加到4自动重装为0,同时发出更新中断请求。

C

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档