chen915 发表于 2020-9-26 16:23

第二帖,请教stc PWM输出频率问题。谢谢

大家好。请问一下。有谁用过stc608AD的?我想请教下,使用定时器0+模式2溢出脉冲作为PCA时钟输入情况下,pwm输出最低频率是多少?16Mhz晶振。。。。我算出来是16000 000 /256/256 = 244hz,但示波器显示为8.47h

PWM为8位

PWM输出频率 =PCA输入源频率 /256 , 得出,当输入频率最小时,PWM输出频率也最小

因为PCA输入源频率取决于TH0和TL0,所以,当TH0 = TL0 = 0x00时,输入源频率最小。。。。这是我的理解,请问哪里有什么问题吗?如果有,还望不吝赐教。

chen915 发表于 2020-9-27 09:18

本帖最后由 chen915 于 2020-9-28 11:43 编辑

已经得到解决,应首先选择定时器为1T或是12T

1T时,则正常,若TH0= TL0 = 0xff,最大可输出62.5k,
                         若TH0= TL0 = 0x00最小为244(但某次示波器抓出来才226)

12T时,若TH0= TL0 = 0xff ,则输出最大为5.21k,
         若TH0= TL0 = 0x00 ,则为最小为20

以上结果基于使用模式2时,即8位自动重装模式

coody 发表于 2020-9-27 16:03

使用定时器0工作于8位自动重装模式,12T模式,则PWM最低频率为16000000/12/256/256=20.345Hz.

chen915 发表于 2020-9-28 11:49

本帖最后由 chen915 于 2020-9-28 11:54 编辑

coody 发表于 2020-9-27 16:03
使用定时器0工作于8位自动重装模式,12T模式,则PWM最低频率为16000000/12/256/256=20.345Hz. ...
谢谢。

8位重装模式已经了解了,示波器结果和计算结果一致。

但是,计算方式1时,即16位定时计数模式。

1T:
    TH0 = 0xff , TL0 = 0xff , 即为最高频率,怎么示波器抓才2.0几K,
    TH0 = 0 , TL0 = 0 ,即为最低频率,示波器抓出来好像是8Hz,

按计算最高不应该是同样为62.5K,最低0.95Hz吗?

xyz549040622 发表于 2020-9-28 15:20

chen915 发表于 2020-9-28 11:49
谢谢。

8位重装模式已经了解了,示波器结果和计算结果一致。


不可能8位模式正确,16位模式不正确吧,仔细看STC的手册,看看操作还有什么需要注意的。

coody 发表于 2020-9-28 17:08

chen915 发表于 2020-9-28 11:49
谢谢。

8位重装模式已经了解了,示波器结果和计算结果一致。


你如果允许了中断,则这么快的中断是没法按时执行的。你可以让定时器直接取反输出方波,不要允许定时器中断,则可以输出达到10MHz的方波。

chen915 发表于 2020-9-28 17:52

xyz549040622 发表于 2020-9-28 15:20
不可能8位模式正确,16位模式不正确吧,仔细看STC的手册,看看操作还有什么需要注意的。 ...

数据手册一条公式,怎么设置定时器分频都没说

chen915 发表于 2020-9-28 17:53

coody 发表于 2020-9-28 17:08
你如果允许了中断,则这么快的中断是没法按时执行的。你可以让定时器直接取反输出方波,不要允许定时器中 ...

开中断影响忽略不计,最高最低都是62.5k和244Hz
页: [1]
查看完整版本: 第二帖,请教stc PWM输出频率问题。谢谢