打印
[PIC®/AVR®/dsPIC®产品]

求助 pic pwm 周期与预分频设置。

[复制链接]
1296|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
现在晶振是16M,需要输出pwm频率100HZ,根据手册公式,算出来PR2 与TMR2预分频值超出范围了。1、手册公式:PWM 周期 = [(PR2) + 1] • 4 • TOSC •(TMR2 预分频值)

2、取PR2最大值255计算TMR2预分频值则到    1/100=(255+1)*4*TMR2预分频值/16M
3、得到TMR2预分频值=156.25. 而预分频值就只能选(1,4,16)。
4、根据公式 算除能输出的最小频率=16M/(256*4*16)=976.5HZ
像这种情况,不改变晶振频率的情况下,用自带的pwm模式能不能输出频率100HZ?

pwm.png (29.72 KB )

pwm.png

pwm.png (29.72 KB )

pwm.png

使用特权

评论回复
沙发
oxygenzz| | 2020-1-8 10:43 | 只看该作者
你的计算中默认晶振频率就是系统时钟(Fosc, Tosc),没有做分频。
实际上可以通过设置分频寄存器,从晶振频率得到更低的系统时钟的。

使用特权

评论回复
板凳
luochangqing112|  楼主 | 2020-1-8 16:38 | 只看该作者
oxygenzz 发表于 2020-1-8 10:43
你的计算中默认晶振频率就是系统时钟(Fosc, Tosc),没有做分频。
实际上可以通过设置分频寄存器,从晶振频 ...

我的芯片型号是pic18f45k80,系统时钟图是这样的
分频好像只能是内部时钟分频,就算分频把系统时钟降低了,但是我指令的运行速度就下降了,这样跟降低外部晶振频率差不多的效果吧?

时钟.png (365.86 KB )

时钟.png

653695e159390cd09f.png (351.43 KB )

653695e159390cd09f.png

使用特权

评论回复
地板
cdyyabc| | 2020-1-9 14:33 | 只看该作者
K80系列的硬件做不到100Hz的,可以试试软件实现

使用特权

评论回复
5
luochangqing112|  楼主 | 2020-1-9 23:45 | 只看该作者
cdyyabc 发表于 2020-1-9 14:33
K80系列的硬件做不到100Hz的,可以试试软件实现

现在打算不用自带的pwn模块,用一个定时器做中断,一定时间内进中断,端口置1.用做周期,用查询定时器寄存器与设定的数值做比较来产生占空比,拉低端口电平。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

390

帖子

3

粉丝