历史上的今天
今天是:2025年03月08日(星期六)
2020年03月08日 | PIC的PWM模块学习经验
2020-03-08 来源:eefocus
今天我们做超声波测距模块,用的是SONY的CX20106A处理接受的信号,要求是标准的40KHz方波,我们打算用PIC自带的PWM模块做40KHz的方波。以前也用过PWM,不过只是普通的用PWM输出信号来控制各类电机,对其输出信号周期、脉宽和占空比没有过高的要求。
今天需要用到很精确的周期跟脉宽,这从而让我们发现了很多问题,也学到了很多
1、PWM周期 = 4T * (TMR2预分频值)*(PR2+1) 这是PIC16F877芯片手册上的公式,开始我们按照北航出版社的《PIC单片机原理及应用(第三版)》上的公式计算周期,总是出不来准确的值,后来再看877的英文手册的时候才发现这本书的PWM周期公式写错了,把(PR2+1)写成了PR2,这一下子就让周期差了很多。
2、在计算脉宽的时候,用到了公式 PWM高电平(脉宽)=CCPR1L:CCP1CON(Bit5~Bit4)*T*(TMR2预分频值),书中只是提到CCPR1L:CCP1CON(Bit5~Bit4)为10位脉宽寄存器,至于这个表达式什么意思并没有详细的说。
开始我们对CCPR1L:CCP1CON(Bit5~Bit4)的理解是CCPR1L是小数点之前的位数,CCP1CON(bit5~bit4)代表的CCP1X和CCP1Y的是小数点以后的位数
比如说:我们预设的脉宽是12.5uS,系统时钟周期T是4MHz,TMR2预分频值是1:1,那么根据脉宽计算公式可以算出
CCPR1L:CCP1CON(Bit5~Bit4)= 50
根据我们开始的理解,也就是需要设定CCPR1L为50,但是在烧入PIC中通过示波器检测的时候发现完全是高电平。
之后我们尝试着将CCPR1L设置为40,结果还是全高电平。
将CCPR1L设置为1后,才出现正常的矩形波。
之后我们就开始考虑我们对CCPR1L:CCP1CON(Bit5~Bit4)的理解的问题。
我们算出来的CCPR1L:CCP1CON(Bit5~Bit4)= 50 代表的意思是CCPR1L跟CCP1CON(bit4——bit5)组成的10位等于50,也就是说在对CCPR1L赋值的时候,如果我们设定了50,那么在CCPR1L:CCP1CON(Bit5~Bit4)中CCPR1L需要升高两位,数值会扩大4倍,
故CCPR1L:CCP1CON(Bit5~Bit4)的值变成了50*4等于200,又因为整个周期为50uS,所以实际输出波形完全是高电平了。
下一篇:PIC单片机存储器拓展
史海拾趣
|
在对行动电话进行测试时,了解可能的干扰讯号源及其在手机前端所表现出来的效果是很重要的,它可以有助于确定接收器测试对RF干扰的感应情况,并找出消除干扰讯号的可行方法。本文介绍CDMA手机接收器在测试时遇到的干扰特性,并加以详细分析,提出参 ...… 查看全部问答> |
|
我想用C51单片机控制控制器SED1335.直接用P0口驱动,驱动能力足够吗? 然后将A0,CS,WR,RD分别与P2.0,P2.1,P2.2,P2.3相连。但是我看到的程序例子中好像没看到对这A0,CS,WR,RS的操作啊。 搜到得程序中,发现很多这样使用的: /* 定义LCM地址 */ ...… 查看全部问答> |
|
module serial(clk,a,q); input clk; output a,q; reg a,q; always @(posedge clk) begin a=~q; q=~q; end endmodule 各位大侠帮忙 ...… 查看全部问答> |
|
fsmc驱动3.5rgb接口的tft彩屏,人家是怎么做的。。 http://www.ramtron-online.cn/user109685/blog/09-04/169227_6912c.html 这个家伙做出来了,但是有人说不是没有lcd控制器,不能实现吗??… 查看全部问答> |
|
经常在路上开车的车主朋友可能注意到了,近期由于市区道路在四处挖开维修,部分路段封闭,加剧了车辆拥堵的紧张局面。另外,在一些新修的道路上由于没有及时标上交通指示线,也令一些车主要么无所适从,要么随意变线,追尾、刮擦之类的小事故频频出 ...… 查看全部问答> |




