OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11669|回复: 3

STC12C5A60S2 PWM 脉冲输出 频率问题

[复制链接]

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
发表于 2013-10-30 16:49:59 | 显示全部楼层 |阅读模式

想做一个通过串口中断改变PWM输出频率,PCA时钟源采用T0溢出率,STC官方PDF资料上有写T0溢出率可以1-256级分频。关于分频我实在不理解,分频怎样实现?STC官方资料有这么一个公式PWM频率=PCA时钟输入源频率/256。PCA时钟源可以从以下8种选择一种:SYSclk,SYSclk/2,SYSclk/4,SYSclk/6,SYSclk/8,SYSclk/12,定时器0溢出,ECI/P3.4输入。
下面是我写的代码

void main()
{
    AUXR |=0x80;//采用1T模式
    TMOD |=0x02;//采用定时器0 模式2 8位自动重装
    TH0 =256-100;//初始值
    TR0=1;//开定时器0
    CMOD |=0x04;//选用PCA时钟源位T0溢出率
    CL=0;
    CH=0;
    CR=1;//开PCA计数
    CCAP1L = 0x80; //Set the initial value same as CCAP1H
    CCAP1H = 0x80; //25% Duty Cycle
    CCAPM1 = 0x42;   //0x42 Setup PCA module 1 in PWM mode
    while(1);
}
上面的代码是T0溢出没有分频,我现在想256分频这个程序应该怎么写?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-10-30 18:53:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-31 08:52:57 | 显示全部楼层
回复【楼主位】higerd_han:
---------------------------------
楼主还是仔细看下官方的datasheet的“PCA工作模式寄存器CMOD”章节吧,里面介绍还是比较全面的,后面还附带有个例子
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

32

主题

72

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
227
金钱
227
注册时间
2013-10-16
在线时间
1 小时
 楼主| 发表于 2013-10-31 12:24:09 | 显示全部楼层
谢谢你们
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表