- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用SST 单片机的PCA功能产生PWM 脉冲
一、程序说明:
SST 单片机带有5路PCA模块,PCA功能比普通的 单片机相比提供更强的计时性,同时更少CPU的干预,用它可以减少软件的开销和改进精度。利用PCA的脉冲宽度调制(PWM)模式可以产生一个8位PWM,它通过比PCA定时器的低位(CL)和比较寄存器的低位(CCAPnL)产生。当CLCCAPnL时输出为低;当CL=CCAPnL是输出为高。要进入这个模式,可以对CCAPMn的PWM和ECOM位置位。
在PWM 模式,输出的频率决定于PCA定时器的源。由于只有一对CH 和CL寄存器,所有模块共享PCA定时器和频率。输出的占空比由装在高位CCAPnH的值控制。由于写入CCAPnH寄存器不是同步的,写入高位的值不会马上装入CCAPnL做比较,直到输出的另一个周期(当CL从255到0翻转)。用下面的公式计算任何占空比CCAPnH 值:
CCAPnH=256(1-占空比)
CCAPnH 是8 位整数,占空比是分数。
脉冲宽度调制频率
PCA定时器模式
PWM 频率
12MHz
16MHz
1/12振荡频率
3.9KHz
5.2KHz
1/4振荡频率
11.8KHz
15.6KHz
定时器0溢出:
8位
16位
8位自动重装
15.5Hz
0.06Hz
3.9KHz 到15.3KHz
?
20.3Hz
0.08Hz
5.2KHz 到20.3KHz
外部输入(最大)
5.9KHz
7.8KHz
?二、相关寄存器介绍:
PCA定时器/计数器模式寄存器(CMOD)
位置
7
6
5
4
3
2
1
0
D9H
CIDL
WDTE
-
-
-
CPS1
CPS0
ECF
标志 功能
CIDL 计数器空闲控制,CIDL=0时,PCA在空闲模式下继续工作。CIDL=1时,PCA在空闲模式下关闭。
WDTE 看门狗定时器使能:WDTE=0时,禁止PCA模块4的看门狗功能。WDTE=1时,使能。
CPS1 PCA计数脉宽选择位1
CPS0 PCA计数脉宽选择位0
CPS1
CPS0
选择PCA输入*
0
0
0
内部时钟6时钟模式下为fosc/6(12时钟模式下为fosc/12)
0
1
1
内部时钟6时钟模式下为fosc/2(12时钟模式下为fosc/4)
1
0
2
定时器0溢出
1
1
3
ECI/P1.2脚输入的外部时钟(6时钟模式最大为osc/4,12
时钟模式下为fosc/8)
fosc=振荡器频率
ECF PCA使能计数器溢出中断:ECF=1,使能CCON 中的CF位,产生中断。
ECF=0时禁止CF的功能。
PCA定时器/计数器控制寄存器(CCON)
位置
7
6
5
4
3
2
1
0
D8H
CF
CR
-
CCF4
CCF3
CCF2
CCF1
CCF0
标志 功能
CR ??PCA计数器运行控制位,由软件置位将PCA计数器打开,要关闭PCA计数器必须由软件清零。
CL
PCA计数器
低字节
E9H
?
CH
PCA计数器
高字节
F9H
?
CCAPM0
模块0模式寄存器
?
DAH
-
ECOM0
CAPP0
CAPN0
MAT0
TOG0
PWM0
ECCF0
CCAP0H
模块0捕获高字节
FAH
CCAP0H[7:0]
CCAP0L
模块0捕获低字节
EAH
CCAP0L[7:0]
三、PWM示例程序代码:
#include stdio.h#include “SST89x5x4Rx.h”// 程序通过比较CL寄存器和CCPA0L的值产生脉冲。// 如果CL = CCAP0L输出为高,如果CL CCAP0L输出为低。// 占空比由CCAP0H的值决定.void main(){ CMOD = 0x02; // Setup PCA timer CL = 0x00; CH = 0x00; CCAP0L = 0x40; // Set the initial value same as CCAP0H CCAP0H = 0x40; // 75% Duty Cycle CCAPM0 = 0x42; // Setup PCA module 0 in PWM mode. CR = 1; // Start PCA Timer. while (1){}}
您可能关注的文档
最近下载
- 济南版(2024)初中生物学七年级上册《脊椎动物身体背部有脊柱》教学设计及反思.docx
- 中铁建工集团质量管理手册.pdf
- 二级中医医院评审细则解读院感部分.pptx
- 2024年迪瑞医疗分析报告:强化协同,仪器放量布局市场.pdf
- 部编版初中道德与法治九年级上册单元作业设计 (优质案例12页) .pdf
- 广东实验中学2023-2024学年八年级上学期期中考试语文试卷.docx VIP
- 2020年世界发展报告:全球价值链时代的贸易换发展.pdf VIP
- 湖北省水利工程重大设计变更报告编制大纲.pdf
- 2024高中地理教师课程标准考试模拟试卷及参考答案.docx VIP
- 《材料成型工艺学》全套教学课件.ppt
文档评论(0)