比较器与pwm控制与实习

比较器与pwm控制与实习

ID:20198057

大小:97.00 KB

页数:11页

时间:2018-10-11

比较器与pwm控制与实习_第1页
比较器与pwm控制与实习_第2页
比较器与pwm控制与实习_第3页
比较器与pwm控制与实习_第4页
比较器与pwm控制与实习_第5页
资源描述:

《比较器与pwm控制与实习》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第7章比较器与PWM控制与实习7-1.2 简单功能比较器实习程序:SCMP1.C/*=============================================*//*Filename:SCMP1.C*//*=============================================*/#include"f240regs.h"main(void){InitCPU();/*设定工作频率=20MHz=0.5uS*/OCRA=0x0700;/*设定IOPB0-2脚=PWM7-9脚*/GPTCON=0x00;/*禁用TxCMP*/T1C

2、ON=0x1740;/*TPS2-0=111,基本计时时间=0.5uS*128=64mS,连续上数*/T1CNT=0;/*T1计数=0*/T1PR=60000;/*T1周期时间=64mS*60000=0.384秒*/COMCON=0x8100;/*响应简单比较器,立即输出0,使用T1*/SACTR=0x15;/*PWM7-9为立即输出1*/SCMPR1=40000;/*PWM7高电平时间=64mS*40000=0.256秒*/SCMPR2=20000;/*PWM8高电平时间=64mS*20000=0.128秒*/SCMPR3=10000;/*PWM9高电平

3、时间=64mS*10000=0.064秒*/while(1);/*空转*/}7-2.2全功能比较器与PWM实习全功能比较器输出实习范例程序:FCMP1.C/*=============================================*//*Filename:FCMP1.C*//*=============================================*/#include"f240regs.h"voidmain(void){inti=50;/*休时时间=5us*/InitCPU();T1CNT=0x00;/*清除计时器1*/

4、T1PR=1000;/*设定T1周期=100uS=10kHz*/CMPR1=800;/*设定全功能比较器1数值,令PWM1/PWM2=80uS*/CMPR2=600;/*设定全功能比较器2数值,令PWM3/PWM4=60uS*/CMPR3=400;/*设定全功能比较器3数值,令PWM5/PWM6=40uS*/ACTR=0x0666;/*PWM1,3,5activehigh,PWM2,4,6activelow"*/COMCON=0x8307;/*使用PWM模式,计时1溢出则重新加载,响应输出*/GPTCON=0x0055;/*SetallTxCMPoutpu

5、tactivelow*/DBTCON=(i<<8)+0xe0;/*休时时间及设定*/T1CON=0x1142;/*使用内cpuclk/2,连续上数模式*/while(1);/*空转*/}第八章捕捉器和转轴编码器原理与实习8-1.2捕捉器的实习程序:CAP1.C/*=============================================*//*Filename:CAP1.C*//*=============================================*/#include"lh092.h"#include"f240regs

6、.h"voidmain(void){inti,value=0,value1=0,value2;InitCPU();OCRA=0xFFFF;/*设定T1CMP引脚*/OCRB=0xFFF3;/*设定CAP0-3引脚*/CS0=0;T1CNT=0;/*设定计时1=0*/T1PR=0x100;/*设定计时1周期时间=80h*0.1uS*/T1CMPR=0x40;/*设定计时1比较器时间=40h*0.1uS*/T1CON=0x1142;/*响应T1基本计时时间=0.1uS*/GPTCON=0x0055;/*设定T1outputactivelow*/CAPCON=0

7、x9404;/*响应CAP3脚为正缘触发输入*/T3CNT=0x0000;/*设定计时3=0*/T3CMPR=0x00;/*设定计时3比较器时间*/T3PR=0x7FFF;/*设定计时3周期时间*/T3CON=0x1142;/*响应T3基本计时时间=0.1uS*/while(1){CAPFIFO=0;if(CAPFIFO==0x2000)/*表示CAP3FIFO已存入两个触发时间*/{value1=CAP3FIFO;/*取出第一个触发时间*/value2=CAP3FIFO;/*取出第二个触发时间*/value=value2-value1;/*两个触发时间相

8、减=输入的周期时间*/if(value>0)CS0=value;/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。