



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在C博客里面看到一篇对输入捕获模式理解的文档,感觉很好,因此复制过来,以增加理解内容如下一、概念理解PWM输入捕获模式是输入捕获模式的特例,自己理解如下1. 每个定时器有四个输入捕获通道IC1、IC2、IC3、IC4。且IC1 IC2一组,IC3 IC4一组。并且可是设置管脚和寄存器的对应关系。2. 同一个TIx输入映射了两个ICx信号。3. 这两个ICx信号分别在相反的极性边沿有效。4. 两个边沿信号中的一个被选为触发信号,并且从模式控制器被设置成复位模式。5. 当触发信号来临时,被设置成触发输入信号的捕获寄存器,捕获“一个PWM周期(即连续的两个上升沿或下降沿)”,它等于包含TIM时钟周期的个数(即捕获寄存器中捕获的为TIM的计数个数n)。6. 同样另一个捕获通道捕获触发信号和下一个相反极性的边沿信号的计数个数m,即(即高电平的周期或低电平的周期)7. 由此可以计算出PWM的时钟周期和占空比了 frequency=f(TIM时钟频率)/n。 duty cycle=(高电平计数个数/n), 若m为高电平计数个数,则duty cycle=m/n 若m为低电平计数个数,则duty cycle=(n-m)/n注:因为计数器为16位,所以一个周期最多计数65535个,所以测得的 最小频率= TIM时钟频率/65535。 二、程序设计与分析1. 程序概述:选择TIM3作为PWM输入捕获。IC2设置为上升沿,并设置为有效的触发输入信号。所以IC2的捕获寄存器捕获PWM周期, IC1的捕获寄存器捕获PWM的高电平周期。2.程序代码如下: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /时钟配置 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; /GPIO配置 PIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; /NVIC配置 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; /通道选择 TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; /上升沿触发 TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; /管脚与寄存器对应关系 TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; /输入预分频。意思是控制在多少个输入周期做一次捕获,如果/输入的信号频率没有变,测得的周期也不会变。比如选择4分频,则每四个输入周期才做一次捕获,这样在输入信号变化不频繁的情况下,/可以减少软件被不断中断的次数。 TIM_ICInitStructure.TIM_ICFilter = 0x0; /滤波设置,经历几个周期跳变认定波形稳定0x00xF TIM_PWMIConfig(TIM3, &TIM_ICInitStructure); /根据参数配置TIM外设信息 TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2); /选择IC2为始终触发源 TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);/TIM从模式:触发信号的上升沿重新初始化计数器和触发寄存器的更新事件 TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); /启动定时器的被动触发 TIM_Cmd(TIM3, ENABLE); /启动TIM2 TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE); /打开中断 中断处理函数 void TIM3_IRQHandler(void) TIM_ClearITPendingBit(TIM3, TIM_IT_CC2); /清楚TIM的中断待处理位 IC2Value = TIM_GetCapture2(TIM3); /读取IC2捕获寄存器的值,即为PWM周期的计数值 if (IC2Value != 0) DutyCycle = (TIM_GetCapture1(TIM3) * 100) / IC2Value; /读取IC1捕获寄存器的值,并计算占空比 Frequency = 72000000 / IC2Value; /计算PWM频率。 else DutyCycle = 0; Frequency = 0; 注(一):若想改变测量的PWM频率范围,可将TIM时钟频率做分频处理 TIM_TimeBaseStructure.TIM_Period = 0xFFFF; /周期0FFFF TIM_TimeBaseStructure.TIM_Prescaler = 5; /时钟分频,分频数为5+1即6分频 TIM_TimeBaseStructure.TIM_ClockDivision = 0; /时钟分割 TIM_TimeBaseStructure.TIM_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合金半成品加工工国庆节后复工安全考核试卷含答案
- 石英晶体元件装配工中秋节后复工安全考核试卷含答案
- 企业安全生产月主题活动策划方案
- 工程项目竣工结算合同范文
- 玻璃幕墙安装工艺流程说明
- 企业法人年审工作流程及注意事项
- 2025-2030动力电池梯次利用残值评估与金融产品设计
- 2025-2030动力电池梯次利用储能项目经济性评估报告
- 2025-2030动力电池干法电极工艺设备投资热点与专利布局分析报告
- 2025-2030动力电池回收网络体系建设与循环经济政策红利分析报告
- 规模灵活资源广域接入的新型配电系统分层分群架构与规划技术研究
- 音乐心理学理论-洞察分析
- 法院报名登记表
- 上海市闵行区区管国企招聘笔试冲刺题2025
- 2025年恒丰银行烟台分行招聘笔试参考题库含答案解析
- 中外建筑史课件
- 2024年度商业保理合同:保理公司与出口商之间的商业保理协议3篇
- 宣传网络安全文明上网
- 应急管理部14号令《生产安全事故罚款处罚规定》 修改前后对照表及解读
- ASTM-D3359-(附著力测试标准)-中文版
- 中华人民共和国标准设计施工总承包招标文件(2012年版)
评论
0/150
提交评论