在使用单片机对脉冲信号进行捕获时,经常会使用到单片机的捕获功能。 今天,我们讲解一下关于gd32f103c系列单片机的pwm捕获功能。 使用定时器2的通道2-pa6(timer2_ch0)作为pwm脉冲捕获口,进行脉冲捕获。
引脚定义
1、定时器配置
timer_init.prescaler = 107;//分频系数,最终分频fre=108m/(108m-1)+1=1m timer_init.alignedmode = timer_counter_edge;//选择边缘对其模式 timer_init.counterdirection = timer_counter_up;//向上计数 timer_init.period = 65535;//定时器装载值,计数值超出后会产生溢出中断 timer_init.clockdivision = timer_ckdiv_div1;//不分割 timer_init.repetitioncounter = 0;//重复计数,重复溢出多少次才会溢出中断,此处配置为0,不重复 timer_init(timer2,&timer_init);//使能定时器timer_init.icpolarity = timer_ic_polarity_rising;//上升沿触发模式 timer_init.icselection = timer_ic_selection_directti;//通道直连 timer_init.icprescaler = timer_ic_psc_div1;//无预分频器,捕获输入口检测到的每一个边沿都会触发一次捕获 timer_init.icfilter = 0x0;//无滤波器 timer_input_config(timer2,timer_ch_0,&timer_init);//使能捕获配置2、原理讲解
pwm信号频率捕获时需要考虑两种情况,一种是周期在设定的period内,不会触发溢出中断; 另外一种是频率较低,会远远超出一个定时器周期,并触发溢出中断。
不会触发溢出中断的情况
th就是我们设定的period值65535,主频时108m,分频后为1m,所以定时器溢出中断时间为:t=1/1m*65535=0.065535s。 假设第一种情况,捕获到第一次高电平时,t0=count_value1,捕获到第2次高电平时t1=count_value2,那么count=count_value2-count_value1;
count_value1 = timer2_ch0cv(timer2); count_value2 = timer2_ch0cv(timer2);count=count_value2-count_value1;触发溢出中断的情况
第2种情况,由于频率较低,所以当捕获到第2次高电平时,已触发了定时器溢出中断,所以需要加上溢出中断部分。 溢出中断次数计为overval,从图中看两次高电平之间overval次数为2,那么总的计数count=(overval*th-count_value1)+count_value2。
uint16_t overval = 0;//溢出次数uint16_t freq = 0;//频率count = (overval*th-count_value1)+count_value2;freq =1/t= 1/(1/1m*count)=1m/count;
大立光电2018年第四季度的营收和营业利润均下滑了20%以上
矢量变频空调风机设计方案
CRT激光焊接的首尾激光功率控制要点
如何采集工业设备数据?工业数据采集的方法有哪些?
构建智能联接为以后带来什么
GD32F103C系列单片机的PWM捕获功能
uasb反应器结构示意图
EVG 已在全球范围建立超过 1100 个EVG 晶圆键合室
昨日公布了《新能源汽车下乡活动第三批汽车企业及车型名单》
5G来了未来或将是云机器人的天下
半入耳式蓝牙耳机什么牌子好?半入耳式真无线耳机推荐!
主题教育 | 联学共建促发展 凝心聚力谱新篇——易华录党委和太极股份党委开展主题教育联学共建活动
当前常用单片机开发模式有哪些
宁波大学成功制造出使用高分子材料电极的石英晶体谐振器
find exec命令实例教程
BAT转向“产业互联网”应用于诸多领域
中国高光谱成像在中药领域的应用前景-莱森光学
硬盘接口SATA2.0和SATA3.0的区别
新一代智能手机市场--防水手机将面临着怎样的设计挑战?
关于RFID技术在厂内物流应用中的简单分析