PIC16F73如何产生一个标准和39.2KHz,控制史宾二代的机器人

2020-02-09 11:27发布

最近在研究一个史宾二代的机器人,采用的单片机是16F73的。根据资料,里面写着载波是39.2KHz,但用单片机的PWM如何准确产生这样的载波。。。?请高手指点一下,本人采用的是C语言编写程序,当PR2设置的初值为0X4C时,产生的是38.96HKz,当PR2设置为0X4B时,产生的是39.4753KHz。但这样的载波也无法控制机器人,请高手帮个忙。。。看如何提高PWM的频率。本人还对CCP1CON进行设置,好像频率没什么改变。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
dikex
1楼-- · 2020-02-09 12:07
关键在晶振的频率上
你用的貌似是12M的(如TMR2预分频为1:1)
选用16M的,PR2设为0x65,这样PWM频率为:fosc/((PR2+1)*4)=16M/((0x65+1)*4)=39.216KHz(TMR2预分频为1:1)
误差为(39.216-39.2)/39.2=0.4%
这样应该可以了
cbhzl
2楼-- · 2020-02-09 14:14
谢谢,这个问题已解决,主要还是考虑到波特率的一些事,就是平时为高发送完为高等问题。。

一周热门 更多>