编程-pwm代码求分析,求详细的注释!

作者:用户 来源:互联网 浏览:348 次 时间:2016-04-14 13:47:16

编程嵌入式arm

编程-pwm代码求分析,求详细的注释! - 摘要: pwm代码求分析,求详细的注释!下面这些代码我大概知道是干什么的,但是不知道是怎么实现的,每一步是什么意思,求详细的注释!!!跪求大神们!!!!PWM编程改变输出频率:rTFG0=0xff;rTCFG

问题描述

pwm代码求分析,求详细的注释!

下面这些代码我大概知道是干什么的,但是不知道是怎么实现的,每一步是什么意思,求详细的注释!!!跪求大神们!!!!
PWM编程改变输出频率:
rTFG0=0xff;
rTCFG1=0x1;
for(freq=4000;freq<14000;freq=freq+1000)
{

div=(PCLK/256/4)/freq;
rTCON=0x0;
rTCNTB0=div;
rTCMPB=(2*div)/3;
rTCON=0xa;
rTCON=0x9;
for(index=0;index<1000;index++);
rTCON=0x0;
}
编程改变输出占空比:
div=(PCLK/256/4)/8000;
for(rate=1;rate<100;rate++)
{
rTCNTB0=div;
rTCMPB0=(rate*div)/100;
rTCON=0xa;
rTCON=0x9;
for(index=0;index<10000;index++)
rTCON=0x0;
}

解决方案

rTFG0=0xff;//-给寄存器附值为0xff,具体含义你书上应该有
rTCFG1=0x1;//-给寄存器附值0x01,,具体含义你书上应该有

//-频率freq从4000,每循环一次+1000,循环14次(freq<14000),即增加频率值
for(freq=4000;freq<14000;freq=freq+1000)
{
div=(PCLK/256/4)/freq;//-分频率值计算
rTCON=0x0;//-控制寄存器付值0x0
rTCNTB0=div;//-设置累加计数值,周期
rTCMPB=(2*div)/3;//-设置比较计数值,和rTCNTB0值得到PWM占空比为2/3,占空比
rTCON=0xa;//-控制寄存器付值为0xa,
rTCON=0x9;//-控制寄存器付值为0x9,
for(index=0;index<1000;index++);//-延时
rTCON=0x0;//-控制寄存器付值0x0
}
编程改变输出占空比:
div=(PCLK/256/4)/8000;//-得到周期

//-占空比值rate从1以1为单位增加,循环100次,即占空比增加
for(rate=1;rate<100;rate++)
{
rTCNTB0=div;//-周期值,
rTCMPB0=(rate*div)/100;//-占空比计算,周期div一定,rate增加,占空比增加
rTCON=0xa;//-控制寄存器付值为0xa,
rTCON=0x9;//-控制寄存器付值为0x9,
for(index=0;index<10000;index++)//-延时
rTCON=0x0;//-控制寄存器付值为0x0
}

//-具体在寄存器付值含义,你应该可以在书中找到……。

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
云栖社区(yq.aliyun.com)为您免费提供编程-pwm代码求分析,求详细的注释!相关信息,包括 编程嵌入式 arm 的信息 ,所有编程-pwm代码求分析,求详细的注释!相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_66045,您可以点击编程-pwm代码求分析,求详细的注释!-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航