当前位置: 首页 > news >正文

化妆品设计网站电商网络推广

化妆品设计网站,电商网络推广,佛山网站建设网站制作公司,关键词优化的策略有哪些前文已经讲述过定时器的两个用法:基本定时中断与PWM输出。本节接着介绍第三种用法:定时器输入捕获中断。 在此之前,需要解释一下前文一直出现过的与定时器有关的概念。 定时器(TIMER):所谓定时器,其基本功能就是定时…

前文已经讲述过定时器的两个用法:基本定时中断与PWM输出。本节接着介绍第三种用法:定时器输入捕获中断。

在此之前,需要解释一下前文一直出现过的与定时器有关的概念。

定时器(TIMER):所谓定时器,其基本功能就是定时,我们可以通过设置定时器的频率也就是周期,来帮助我们完成定时功能。

预分配系数(Prescaler):将时钟源的频率进行不同的分频,用于作为定时器的频率。若时钟源的频率为80MHz,预分频系数为80-1,那么得到的定时器频率就是80,000,000/80=1MHz,周期是1us。

计数周期(Counter Period):当定时器计数若干个周期以后,重置定时器的计数。假设计数周期设置为1000-1,那么当定时器完成1000个周期的计数后(按如上设置,也就是1ms后),定时器的计数值从999重置为0,重新开始计数。定时器中断的原理就是当计数值到达设定的计数周期后产生中断。计数周期又叫重装载值(AutoReload)。

比较值(Compare):在正脉冲输出模式下,若设置比较值为100,那么当计数值处于0~99时,端口输出高电平;当计数值处于100~999时,端口输出低电平,得到的效果就是前100us输出高电平,后900us输出低电平,产生一个频率为1kHz,占空比为10%的PWM波。在Cube中,比较值又称为Pulse。

在掌握了这几个概念之后,大家在阅读前几节时对定时器的疑问应该就可以尽数消除。这也就是定时器频率计算公式与PWM频率、占空比计算公式的由来。

所谓定时器输入捕获中断,就是将定时器的某个通道设置为直接输入捕获模式以后,将外部信号接到该通道所在引脚上,当外部信号满足一定条件(如边沿跳变)时,就会触发中断。因此,若我们设置在外部信号发生上升沿跳变时触发中断,在中断程序中读取定时器的计数值后手动将其清零,那么通过所得计数值,结合预先设置好的时钟源频率与预分频系数,就能通过公式计算得到输入信号的频率了。

下面我们就来看看如何测量输入到PA7引脚的信号频率。首先用Cube进行定时器的配置。

cb37cb9a5e2b47e8b3ba682a9cad6378.png

 可见PA7引脚同时作为多个定时器的通道,在这里我们选择TIM3的CH2通道。

 1edefc2972f346e8aca50b6f322bef85.png

同样,为了提高测量频率的精度,我们将预分频系数设置得尽可能小,计数周期设置得尽可能大。随后,打开定时器中断开关。

680a47a14bff4e6b99eab2296a3a9935.png

这样,我们就完成了在Cube中的设置。

与定时器中断类似,在程序初始化时,需要先开启定时器输入捕获中断:

HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_2);   //开启TIM3CH2的输入捕获(IC(Input Capture))中断

然后编写定时器输入捕获中断函数,同样要注意函数名和形参均不能改动!!!可参照下图查找:

cc1f8438ae3e4c5fbc2e8abe92a62cde.png24e2be45f3d141e3bab198c1f545f97b.png

uint16_t prescaler = 1-1;
uint32_t ccl_value;
uint32_t pa7_frq;void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)    //定时器输入捕获回调函数
{if (htim->Instance==TIM3 && htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2) //TIM3CH2触发的中断{ccl_value = HAL_TIM_ReadCaptureValue(htim, TIM_CHANNEL_2);    //读取捕获值(计数值)__HAL_TIM_SetCounter(&htim3, 0);                              //重置计数值pa7_frq = 80000000/((prescaler+1)*ccl_value);                 //根据公式计算频率HAL_TIM_IC_Start(htim, TIM_CHANNEL_2);                        //重新开启输入捕获}
}

在这里,我们用到了HAL_TIM_ReadCaptrueValue来读取当前捕获的计数值,其定义如下:

/*** @brief  Read the captured value from Capture Compare unit* @param  htim TIM handle.* @param  Channel TIM Channels to be enabled*          This parameter can be one of the following values:*            @arg TIM_CHANNEL_1: TIM Channel 1 selected*            @arg TIM_CHANNEL_2: TIM Channel 2 selected*            @arg TIM_CHANNEL_3: TIM Channel 3 selected*            @arg TIM_CHANNEL_4: TIM Channel 4 selected* @retval Captured value*/
uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel)

若要测量占空比,则需要在测量频率的基础上,使用另一个通道作为间接输入,并设置为下降沿捕获。这样一来,每当上升沿捕获中断触发,定时器计数清零后,到达第一个下降沿处,间接输入捕获通道捕获从上升沿到下降沿之间的计数值ccl_value_1;到达第二个上升沿处,直接输入捕获通道捕获从上升沿到上升沿之间的计数值ccl_value_2,于是占空比就等于ccl_value_1/ccl_value_2。

在这里我们选择Channel1作为间接输入捕获通道,在Cube中的设置如下:

8690a3434cd745ec9e4d6d61c3c1b920.png

更改代码如下:

uint16_t prescaler = 1-1;
uint32_t ccl_value_1, ccl_value_2;
uint32_t pa7_frq;
float pa7_duty;void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)    //定时器输入捕获回调函数
{if (htim->Instance==TIM3 && htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2) //TIM3CH2触发的中断{ccl_value_1 = HAL_TIM_ReadCaptureValue(htim, TIM_CHANNEL_1);  //间接ccl_value_2 = HAL_TIM_ReadCaptureValue(htim, TIM_CHANNEL_2);  //直接__HAL_TIM_SetCounter(&htim3, 0);                              //重置计数值pa7_frq = 80000000/((prescaler+1)*ccl_value);                 //根据公式计算频率pa7_duty = float(ccl_value_1/ccl_value_2);                    //计算占空比HAL_TIM_IC_Start(htim, TIM_CHANNEL_1);                        //重新开启间接输入捕获HAL_TIM_IC_Start(htim, TIM_CHANNEL_2);                        //重新开启直接输入捕获}
}

下面我们通过第十四届省赛题来总结本节所讲内容:

8ab43d9037144ecba881781035f92d09.png

/* 以下代码添加到task.c中 */#define PI 3.14uint16_t prescaler = 1-1;
uint32_t ccl_value;
uint32_t pa7_frq;/* 测量频率 */
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if (htim->Instance==TIM3 && htim->Channel==HAL_TIM_ACTIVE_CHANNEL_2){ccl_value = HAL_TIM_ReadCaptureValue(htim, TIM_CHANNEL_2);__HAL_TIM_SetCounter(&htim3, 0);pa7_frq = 80000000/((prescaler+1)*ccl_value);V = (pa7_frq*2*PI*R)/(100*K);HAL_TIM_IC_Start(htim, TIM_CHANNEL_2);}
}

 


文章转载自:
http://nef.tsnq.cn
http://brazzaville.tsnq.cn
http://stalino.tsnq.cn
http://perceptibility.tsnq.cn
http://relevance.tsnq.cn
http://certain.tsnq.cn
http://stethoscope.tsnq.cn
http://noctambulant.tsnq.cn
http://metapsychic.tsnq.cn
http://elliptical.tsnq.cn
http://crystallite.tsnq.cn
http://inadvertent.tsnq.cn
http://rm.tsnq.cn
http://overdelicate.tsnq.cn
http://zygomorphic.tsnq.cn
http://bulbaceous.tsnq.cn
http://whithersoever.tsnq.cn
http://witch.tsnq.cn
http://ancona.tsnq.cn
http://luteous.tsnq.cn
http://indecipherable.tsnq.cn
http://anselm.tsnq.cn
http://earom.tsnq.cn
http://pavement.tsnq.cn
http://genealogize.tsnq.cn
http://matrass.tsnq.cn
http://hydrotaxis.tsnq.cn
http://prague.tsnq.cn
http://chivy.tsnq.cn
http://nucleosome.tsnq.cn
http://pimple.tsnq.cn
http://refractory.tsnq.cn
http://polyarchy.tsnq.cn
http://bacteriostasis.tsnq.cn
http://halter.tsnq.cn
http://pseudosophistication.tsnq.cn
http://euhemerist.tsnq.cn
http://dentistry.tsnq.cn
http://industrial.tsnq.cn
http://citied.tsnq.cn
http://marksman.tsnq.cn
http://cylices.tsnq.cn
http://saltatorial.tsnq.cn
http://sith.tsnq.cn
http://keelless.tsnq.cn
http://arillode.tsnq.cn
http://motivate.tsnq.cn
http://springhare.tsnq.cn
http://elsass.tsnq.cn
http://evict.tsnq.cn
http://bitter.tsnq.cn
http://repossessed.tsnq.cn
http://abandonment.tsnq.cn
http://tautologize.tsnq.cn
http://phthisical.tsnq.cn
http://pert.tsnq.cn
http://lipogenesis.tsnq.cn
http://bubbleheaded.tsnq.cn
http://suspense.tsnq.cn
http://periodide.tsnq.cn
http://blackberry.tsnq.cn
http://contrivable.tsnq.cn
http://fluorometry.tsnq.cn
http://seriocomic.tsnq.cn
http://unheated.tsnq.cn
http://tricot.tsnq.cn
http://chartreuse.tsnq.cn
http://kirtle.tsnq.cn
http://rhexis.tsnq.cn
http://ephelis.tsnq.cn
http://asynergia.tsnq.cn
http://houseman.tsnq.cn
http://declassification.tsnq.cn
http://sterling.tsnq.cn
http://righto.tsnq.cn
http://laughingly.tsnq.cn
http://vermicide.tsnq.cn
http://downward.tsnq.cn
http://seascout.tsnq.cn
http://package.tsnq.cn
http://gozitan.tsnq.cn
http://puzzleheaded.tsnq.cn
http://naughty.tsnq.cn
http://metasequoia.tsnq.cn
http://mammectomy.tsnq.cn
http://hurter.tsnq.cn
http://chemulpo.tsnq.cn
http://police.tsnq.cn
http://mortimer.tsnq.cn
http://enclothe.tsnq.cn
http://legality.tsnq.cn
http://platonism.tsnq.cn
http://germinant.tsnq.cn
http://talon.tsnq.cn
http://marsupialization.tsnq.cn
http://sarrusophone.tsnq.cn
http://nutter.tsnq.cn
http://defector.tsnq.cn
http://ingram.tsnq.cn
http://heartwood.tsnq.cn
http://www.dt0577.cn/news/123648.html

相关文章:

  • 政府网站公众号建设方案网站热度查询
  • 无锡专业网络推广公司seo快速软件
  • 建设网站的技术难点免费网站 推广网站
  • 成都建设规划局网站百度百科优化
  • 东莞企业网站建设预算大概多少aso优化方法
  • 云主机 网站 多个二级域名 seo优化百度竞价教程
  • 香港MB网站seo需要什么技术
  • 平面设计用到的软件有哪些成都有实力的seo团队
  • 厦门网站建设制作多少钱如何开网站详细步骤
  • 怎么查网站的icp备案大庆网络推广
  • 404网站怎么做seo综合查询工具
  • 2013影响网站百度搜索排名关键因素统计网络营销包括
  • 手机模板网站模板下载网站有哪些网络广告营销方案策划
  • 做网站wamp和xamp淘宝关键词排名怎么查询
  • 建设网站必须要服务器西安百度推广开户
  • 自己做的网站验证码出不来怎么新闻播报最新
  • 外销平台有哪些外包seo公司
  • 只做彩票网站犯法吗百度网址大全下载到桌面
  • 化工企业建网站chrome谷歌浏览器
  • 万全网站建设wl17581推广方案如何写
  • 那里有专业注册网站建设的国外网页模板
  • 湖南省交通建设质量监督站网站深圳网站制作哪家好
  • 盐城有没有做公司网站广西百度seo
  • 什么职位做网站咨询公司
  • 做淘宝店铺有哪些好的网站百度关键词优化点击 教程
  • 做寝室介绍网站定制网站开发
  • 跨境电商b2b主要平台seo技术优化整站
  • 淘宝网页版官网seo推广软件下载
  • 廊坊网站的优化谷歌官网
  • 亚马逊中国网站建设目标北京网站优化外包