求Arduino 输出PWM波的周期或基波频率怎么求是多少

arduino学习笔记7 - PWM控制LED实验 PWM讲解 - Arduino论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
arduino学习笔记7 - PWM控制LED实验 PWM讲解
17:34:05  
本次实验通过PWM来控制一盏LED灯,让它慢慢变亮再慢慢变暗,如此循环。下面是接线图:
ARDUINO 代码复制
/*作者:元件:控制板,led,导线,面包板用途: 本次实验演示如何通过analogWrite()命令使连接9号端口的LED灯亮度逐渐变化&&*/int brightness = 0;& & //定义整数型变量brightness与其初始值,此变量用来表示LED的亮度。int fadeAmount = 5;& & //定义整数型变量fadeAmount,此变量用来做亮度变化的增减量。void setup()&&{&&pinMode(9, OUTPUT);// 设置9号口为输出端口:}void loop()&&{&&analogWrite(9, brightness);//把brightness的值写入9号端口&&brightness = brightness + fadeA//改变brightness值,使亮度在下一次循环发生改变&&if (brightness == 0 || brightness == 255) {& & fadeAmount = -fadeA //在亮度最高与最低时进行翻转&&}&&delay(30); //延时30毫秒& && && && && && && &&&}
analogWrite()
其作用是给端口写入一个模拟值(PWM波)。可以用来控制LED灯的亮度变化,或者以不同的速度驱动马达。当执行analogWrite()命令后,端口会输出一个稳定的占空比的方波。除非有下一个命令来改变它。PWM信号的频率大约为490Hz.
在使用ATmega168与ATmega328的arduino控制板上,其工作在3,5,6,9,10,11端口。Arduino Mega控制板,可以工作于2-13号端口。在更古老的基于ATmega8的arduino控制板上,analogWrite()命令只能工作于9,10,11号端口。在使用analogWrite()命令前,可以不使用pinMode()命令把端口定义为输出端口,当然如果定义了更好,这样利于程序语言规范。
analogWrite(pin, value)
pin:写入的端口
value:占空比:在0-255之间。
注释与已知问题
当PWM输出与5,6号端口的时候,会产生比预期更高的占空比。原因是PWM输出所使用的内部时钟,millis()与delay()两函数也在使用。所以要注意使用5,6号端口时,空占比要设置的稍微低一些,或者会产生5,6号端口无法输出完全关闭的信号。
PWM(Pulse-width modulation)脉宽调制
PWM是使用数字手段来控制模拟输出的一种手段。使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。额~~这个说的太专业了,还是说的通俗点。
以本次实验来看,端口的输入电压只有两个0V与5V。如我我想要3V的输出电压怎么办。。。有同学说串联电阻,对滴,这个方法是正确滴。但是如果我想1V,3V,3.5V等等之间来回变动怎么办呢?不可能不停地切换电阻吧。这种情况下。。。就需要使用PWM了。他是怎么控制的呢,对于arduino的数字端口电压输出只有LOW与HIGH两个开关,对应的就是0V与5V的电压输出,咱本把LOW定义为0,HIGH定义为1.一秒内让arduino输出500个0或者1的信号。如果这500个全部为1,那就是完整的5V,如果全部为0,那就是0V。如果这样输出,刚好一半一半,输出端口就感觉是2.5V的电压输出了。这个和咱们放映电影是一个道理,咱们所看的电影并不是完全连续的,它其实是每秒输出25张图片,在这种情况下人的肉眼是分辨不出来的,看上去就是连续的了。PWM也是同样的道理,如果想要不同的电压,就控制0与1的输出比例控制就ok~当然。。。这和真实的连续输出还是有差别的,单位时间内输出的0,1信号越多,控制的就越精确。
在下图中,绿线之间代表一个周期,其值也是PWM频率的倒数。换句话说,如果arduino PWM的频率是500Hz,那么两绿线之间的周期就是2毫秒。 analogWrite() 命令中可以操控的范围为0-255, analogWrite(255)表示100%占空比(常开), analogWrite(127)占空比大约为50%(一半的时间)。
传统方法实现PWM
除了使用analogWrite()命令实现PWM,还可以通过传统方法来控制电平的开关时间来设置。
请看如下代码ARDUINO 代码复制
void setup(){&&pinMode(13, OUTPUT);//设定13号端口为输出}void loop(){&&digitalWrite(13, HIGH);&&delayMicroseconds(100); // 大约10%占空比的1KHz方波&&digitalWrite(13, LOW);&&delayMicroseconds(900);}
这种方法的的优点是他可以使用任意数字端口做输出端口。而且可以自己随意设定占空比与频率。一个主要的缺点是任何中断都会影响时钟,这样就会导致很大的抖动,除非你禁用中断。第二个却就是CPU在处理输出的时候,就无法做其他事情了。
上面的代码用到了一个新的命令
delayMicroseconds()
其作用是产生一个延时,计量单位是微秒,1000微秒=1毫秒。目前delayMicroseconds()最大值为16383。如果值大于1000,推荐使用delay() 命令。
11:17:12  
最近在跟老师做毕设就是关于这个的,感谢分享
16:00:41  
灰常清楚,讲得好!!!
只有小组成员才能发言,
566个成员聚集在这个小组
109943浏览
104693浏览
创建小组步骤
创建小组创建自己的地盘
个性设置精心打造小组空间
邀请好友邀请好友加入我的小组
小组升级小组积分升级赢得社区推荐
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司求Arduino 输出PWM波的周期或频率是多少_百度知道
求Arduino 输出PWM波的周期或频率是多少
我有更好的答案
: PWM是脉宽调制; 不是自己控制脉冲宽度吗; 你想把频率设为多少就是多少; 没有上限的,下限就是你的板的频率;
采纳率:89%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。使用Arduino Uno输出自定义频率的PWM - 简书
使用Arduino Uno输出自定义频率的PWM
现在需要用Arduino输出可自定义频率(100Hz)的PWM来控制电动机转速。Arduino里有简单的语句来实现PWM,但是输出信号的频率不能更改。本文结合网上的文章信息和我的研究结果,解释一下实现频率可调的PWM的过程。
(Pulse Width Modulation)是一种方波控制信号。方波高电平的宽度在一个周期里的占比被称为占空比(Duty Cycle)。改变PWM的占空比,可以改变输出信号的平均电压,实现模拟电压的输出。
Arduino里的PWM
首先,Arduino Uno的5,6,9,10,3,11接口可以通过简单语句(pin, dutyCycle)来实现一个指定占空比的PWM。其中pin的值选择(5,6,9,10,3,11),dutyCycle的值在0~255之间,0为占空比0%,255为占空比100%。但是这种方式PWM信号的频率是固定的默认值,大约左右(16MHz/64/256)。
其次,手动切换高电平和低电平,再在中间加入delay函数,可以实现自定义频率的PWM:
void setup()
pinMode(13, OUTPUT);
void loop()
digitalWrite(13, HIGH);
delayMicroseconds(100); // Approximately 10% duty cycle @ 1KHz
digitalWrite(13, LOW);
delayMicroseconds(1000 - 100); //修改这里的1000可以调整频率
但是,这种操作需要CPU全神贯注的查数,任何其他的进程的干扰会导致输出的信号频率不准。
综上,需要底层的手段来控制Arduino实现PWM的频率调节。
调节Arduino里的时钟频率
Arduino Uno里有三个Timer:Timer0,Timer1,Timer2。 三个Timer都可以自定义调整频率,但是各有特点。Timer0负责控制delay等函数,动了Timer0的频率会导致计时函数不准;Timer1的计数器是16位的,和Timer0,Timer2的8位计数器不太一样;Timer2的频率可调的档位更多,因为它有7档预除数,下文会进一步解释。这里选择Timer2进行调节操作,先上代码:
void setup() {
// put your setup code here, to run once:
pinMode(3, OUTPUT);
pinMode(11, OUTPUT);
TCCR2A = _BV(COM2A0) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); //Set Timer2 to varying top limit fast PWM mode
TCCR2B = _BV(WGM22) | _BV(CS22) | _BV(CS21) | _BV(CS20);//another way to set prescaler CS2=fff
OCR2A = 155; //Top value A
OCR2B = 30; //Toggle value B, Output at pin 3
&--DEFAULT
void loop() {
// put your main code here, to run repeatedly:
由以上代码可见,需要的设置分为三个部分:pinMode,TCCR2A/B,OCR2A/B(这里的2是因为选择了Timer2)。
Timer2所控制的管脚是pin11和pin3(Timer0控制5,6;Timer1控制9,10--这是chip的datasheet上规定),所以把这两个管脚设为输出。
这部分的解释需要提到Timer的结构和原理。
每个Timer里都有一个计数器和两个比较寄存器。Timer2里计数器从0数到255(8位)然后归0继续从头数;Timer2的两个比较寄存器分别为OCR2A和OCR2B。
比较寄存器就是你设置一个小于255的数,比如155。当计数器数到0时输出为高电平,数到155的时候改变输出为低电平。这样就实现了占空比的调节。在普通模式下(Fast PWM),OCR2A控制pin11的占空比,OCR2B控制pin3的占空比。如下图所示。
出处:http://www.righto.com/2009/07/secrets-of-arduino-pwm.html
TCCR2A/B:
理解了Timer的原理,下面来讨论这个PWM的频率。Arduino Uno的芯片ATmega328,晶振频率为16MHz。Timer计数器的频率会在这个基础上除以一个预除数,Timer2可选择的预除数有(1,8,32,64,128,256,1024)。也就是说,如果预除数设为64(默认),计数器计数的频率是16MHz/64 。又因为计数器要数256下才会完成一个PWM周期,所以输出PWM的频率是16MHz/64/256,约等于1000Hz。若果要获得最低的输出频率,预除数要选1024,得到的PWM是61Hz。
TCCR2A/B就是来控制Timer2计数器的模式与预除数的大小的,由于是分位赋值,看起来怪怪的,我来解释一下。先说CS2位,这个就是来控制Timer2计数器预除数的:
_BV(CS22) | _BV(CS21) | _BV(CS20)的三部分由逻辑按位或“|”链接;每个BV是按位赋注(bit value)的意思;_BV(CS22 )= 在CS2里,1&&2(把1左移2位) = ;得到三部分分别是000001;按位或最终得到0111;查代码里的表得到对应的预除数是1024。
模式选择:
现在的问题是,我需要的是100Hz,不是1024预除数下的61Hz,如何实现?这就需要控制计数器模式来微调频率。请看下图:
出处:http://www.righto.com/2009/07/secrets-of-arduino-pwm.html
这张图中的模式可以在原有的fast PWM基础上提高频率,得到图中OCnB所示的信号。这个模式叫做Varying the timer top limit: fast PWM。比较寄存器OCR2A在这里不再控制管脚11的占空比,而是设定一个计数器的上限:计数器不用数到255而是达到OCR2A就可以归零。OCR2B依然控制管脚3的占空比。
为了让pin11有活干,这里设置TCCR2A里的COM2A位=01(表示数到极限就把pin11的电平反转,本应用不需要),COM2B位=10(表示pin3输出非反转PWM)。
那么是如何选择模式的?剩下的WGM2位就是确定模式的。在fast PWM模式下,WGM2位是011,Varying the timer top limit: fast PWM模式下,WGM2位是111。所以需要_BV(WGM22) | _BV(WGM21) | _BV(WGM20)。处于我所不理解的原因,这个赋值可以被分为两部分分别写在TCCR2A和TCCR2B里。有明白的高手麻烦留个言解释一下。
到这里,所有设置已经解释完。下面来计算一下100Hz输出的PWM具体参数应该设为多少。
pin3的输出频率=16MHz / 1024/ (OCR2A + 1),因此100Hz对应的OCR2A=155。(+1是因为fast PWM是从0开始数到上限值)
占空比 = (OCR2B+1)/ (OCR2A+1),所以:
至此,本文介绍了如何使用Arduino的Timer时钟功能自定义设置PWM的频率和占空比。简要解释了Timer的选择,输出管脚的确定,比较寄存器的设定,计数器的预除数选择和模式选择。最后演示了100HzPWM的个参数计算过程。
References
如果这篇文章对你有所帮助,还请帮忙点赞打赏评论分享~谢谢?
初探数据科学的工程博士。
X399平台点睛之笔ZENITHEXTREME引爆性能狂潮 近期,X399平台的顶级性能浮出水面,各家媒体的全方位测试犹如一支强心剂,让PC玩家大呼过瘾。我们惊喜地发现,国内外各大科技媒体一致选用了ROGZENITH EXTREME这款主板。它是华硕目前最顶级的X399芯片...
https://arduino-info.wikispaces.com/Timers-Arduino 什么是timer 计时器? 定时器或更精确的计时器/计数器是内置在 Arduino 控制器中的硬件 (其他控制器也有定时器硬件)。它就像一个时钟, 可以用来测量时间事件。定...
pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public、private、protected, 以及不写(默认)时的区别(201...
这个部分是整个云台控制的核心流程,通过分析他可以了解整个云台在一个周期内所进行的计算,了解整个控制流程,对于我来说还是太复杂了,欢迎大家一起帮助我完善。 void loop()//主循环函数 { int32_t pitchPIDV//用来存储俯仰轴的PID计算结果 i...
什么是arduino? Arduino,是一个开放源代码的单芯片微控制器,它使用了Atmel AVR单片机,采用了开放源代码的软硬件平台,建构于简易输出/输入(simple I/O)界面板,并且具有使用类似Java、C语言的Processing/Wiring开发环境。 以上...
作者:约翰·罗斯柴尔德 译者:杨天南
戴维斯家族第三代降生,谢尔比的妻子温迪在纽约曼哈顿诞下安德鲁和克里斯。谢尔比离开纽约银行,和其他两位合伙人成立了一家小型投资公司。
自二十年代以来,前所未见的基金狂热。道琼斯指数在1,000点上下...
这两天的朋友圈被某快餐店设计的小程序玩坏了,大家都在晒自己当年高考的准考证。一直随大流的我,自然也不例外,看着程序里生成的似乎有一点当年青涩影子的照片,自斟了一杯念酒,便开始回忆起当年的青葱岁月了。 1993的初夏,在经历过第一次模拟高考后,四个小伙伴就开始谋划了后来惊动了...
本节知识点 蜂鸣提示音 plus.device.beep(); 手机震动 plus.device.vibrate(); 蜂鸣提示音plus.device.beep() (二) 手机震动 plus.device.vibrate()
今天,我和芹芹去书店看书。里面的装饰和我想象中的书店差不多一样。我也想要开一个这样子的书店。 比如在周末或者晚上,一个人或几个好友在一起,一人点一杯奶茶和吃点小吃,拿着一本看看,然后聊聊我们看的书。现场最好有轻音乐。 这个想法是我在看书时想要去做的一件事,因为看书时,我们如...
这篇文章就着重介绍中国的配乐人,我们自己也有这样动听的音乐啊。 黄沾 鬼才沾叔注定要留名史册,在电影配乐方面,他能将音乐同电影做得血肉相连,甚至能让音乐超越了电影而独立存在。多少人是先知道《沧海一声笑》才认真看了《笑傲江湖》电影的呢,多少人都听腻了《上海滩》但还没看过连续剧...PWM的周期和占空比是如何计算的?计算公式是什么? - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
PWM的周期和占空比是如何计算的?计算公式是什么?
17:56:19  
43960&查看
比如说:单片机是STC12C5A60S2晶振是11.0592Mhz,我想让PWM的周期是500us,占空比为20%,这个占空比的值和周期值我该怎么计算?麻烦把公式写一下。
以下内容来源于《51单片机轻松入门-基于STC15W4K系列》
4、脉宽调节模式
& &PWM意为脉冲宽度调制,可用于调整输出直流平均电压,对于矩形波而言,输出平均压等于峰值电压×占空比,占空比是一个脉冲周期内高电平时间与周期的比值,例如,峰值电压等于5V,占空比等于50%的方波信号平均电压等于2.5V,也就是万用表直流档测量得到的电压值,8位PWM模式结构如图8-6所示, PWM输出不需要使用中断。[attach]283974[/attach]
通过程序设定寄存器PCA_PWMn(n=0,1,2,下同)中的位EBSn_1及EBSn_0,使其工作于8位PWM或7位PWM或6位PWM模式,当[EBSn_1,EBSn_0]=[0,0](默认值)或[1,1]时,PCA模块n工作于8位PWM模式,此时将{0,CL[7:0]}与[EPCnL,CCAPnL[7:0]]进行比较,当{0,CL[7:0]}中的值小于{EPCnL,CCAPnL[7:0]}时,输出为低,当{0,CL[7:0]}中的值等于或大于{EPCnL,CCAPnL[7:0]}时,输出为高,当EPCnL=0且CCAPnL=00H时,PWM固定输出高,当EPCnL=1且CCAPnL=FFH 时,PWM固定输出低。当CL的值由FF变为00溢出时,{EPCnH,CCAPnH[7:0]}的内容自动装载到{EPCnL,CCAPnL[7:0]}中,这样可实现无干扰地更新PWM占空比,要使能PWM模式,模块CCAPMn寄存器的ECOMn和PWMn位必须置位。PCA时钟输入源可以从以下8种中选择一种:SYSclk/12、SYSclk /8、SYSclk/6、SYSclk /4、SYSclk /2、SYSclk、定时器0的溢出、ECI/P1.2输入,PWM输出占空比由{EPCnL,CCAPnL[7:0]}确定。8位PWM的周期 = 计数脉冲周期×256 & && && && && && && && && & 8位PWM的频率 = 计数脉冲频率/2568位PWM的脉宽时间(高电平时间)= 计数脉冲周期×(256-CCAPnL)8位PWM的占空比 = 脉宽时间/PWM周期 = (1- CCAPnL/256) ×100%如果要实现给定频率的PWM输出,可选择定时器0的溢出或者ECI(P1.2)脚的输入作为PCA的时钟输入源。所有PCA模块都可用作PWM输出,由于所有模块共用PCA定时器,所以它们的输出频率相同,各个模块的输出占空比是独立变化的,当某个I/O 口作为PWM使用时,该口的状态如表8-9所示。表8-9 I/O口作为PWM使用时的状态
&&PWM之前的状态&&PWM输出时的状态弱上拉/准双向口强推挽输出/强上拉输出,要加输出限流电阻1KΩ-10KΩ强推挽输出/强上拉输出强推挽输出/强上拉输出,要加输出限流电阻1KΩ-10KΩ仅为输入/高阻PWM无效开漏开漏
助理工程师
17:56:20  
以下内容来源于《51单片机轻松入门-基于STC15W4K系列》
4、脉宽调节模式
& &PWM意为脉冲宽度调制,可用于调整输出直流平均电压,对于矩形波而言,输出平均压等于峰值电压×占空比,占空比是一个脉冲周期内高电平时间与周期的比值,例如,峰值电压等于5V,占空比等于50%的方波信号平均电压等于2.5V,也就是万用表直流档测量得到的电压值,8位PWM模式结构如图8-6所示, PWM输出不需要使用中断。
未命名13.JPG (30.5 KB, 下载次数: 60)
22:18 上传
通过程序设定寄存器PCA_PWMn(n=0,1,2,下同)中的位EBSn_1及EBSn_0,使其工作于8位PWM或7位PWM或6位PWM模式,当[EBSn_1,EBSn_0]=[0,0](默认值)或[1,1]时,PCA模块n工作于8位PWM模式,此时将{0,CL[7:0]}与[EPCnL,CCAPnL[7:0]]进行比较,当{0,CL[7:0]}中的值小于{EPCnL,CCAPnL[7:0]}时,输出为低,当{0,CL[7:0]}中的值等于或大于{EPCnL,CCAPnL[7:0]}时,输出为高,当EPCnL=0且CCAPnL=00H时,PWM固定输出高,当EPCnL=1且CCAPnL=FFH 时,PWM固定输出低。当CL的值由FF变为00溢出时,{EPCnH,CCAPnH[7:0]}的内容自动装载到{EPCnL,CCAPnL[7:0]}中,这样可实现无干扰地更新PWM占空比,要使能PWM模式,模块CCAPMn寄存器的ECOMn和PWMn位必须置位。PCA时钟输入源可以从以下8种中选择一种:SYSclk/12、SYSclk /8、SYSclk/6、SYSclk /4、SYSclk /2、SYSclk、定时器0的溢出、ECI/P1.2输入,PWM输出占空比由{EPCnL,CCAPnL[7:0]}确定。8位PWM的周期 = 计数脉冲周期×256 & && && && && && && && && & 8位PWM的频率 = 计数脉冲频率/2568位PWM的脉宽时间(高电平时间)= 计数脉冲周期×(256-CCAPnL)8位PWM的占空比 = 脉宽时间/PWM周期 = (1- CCAPnL/256) ×100%如果要实现给定频率的PWM输出,可选择定时器0的溢出或者ECI(P1.2)脚的输入作为PCA的时钟输入源。所有PCA模块都可用作PWM输出,由于所有模块共用PCA定时器,所以它们的输出频率相同,各个模块的输出占空比是独立变化的,当某个I/O 口作为PWM使用时,该口的状态如表8-9所示。表8-9 I/O口作为PWM使用时的状态
&&PWM之前的状态&&PWM输出时的状态弱上拉/准双向口强推挽输出/强上拉输出,要加输出限流电阻1KΩ-10KΩ强推挽输出/强上拉输出强推挽输出/强上拉输出,要加输出限流电阻1KΩ-10KΩ仅为输入/高阻PWM无效开漏开漏
18:21:13  
PWM是通过计数器产生的,占空比 = 比较值/计数器重载值;
周期 = 计数器重载值/计数器的时钟频率(=晶振频率*倍频/分频)
09:32:31  
PWM是通过计数器产生的,占空比 = 比较值/计数器重载值;
周期 = 计数器重载值/计数器的时钟频率(=晶振频率*倍频/分频)
能不能稍微再详细一些,概念比较模糊。
09:33:56  
以下内容来源于《51单片机轻松入门-基于STC15W4K系列》
4、脉宽调节模式
& &PWM意为脉冲宽度调制,可用于调整输出直流平均电压,对于矩形波而言,输出平均压等于峰值电压×占空比,占空比是一个脉冲周期内高电平时间与周期的比值,例如,峰值电压等于5V,占空比等于50%的方波信号平均电压等于2.5V,也就是万用表直流档测量 ...
8位PWM的周期 = 计数脉冲周期×256 这个还是不是太清楚,这个计数脉冲周期是什么?
12:34:20  
周期 = 计数器重载值/计数器的时钟频率(=晶振频率*倍频/分频)
STC12C5A60S2手册上有的,比较清晰
16:13:56  
周期 = 计数器重载值/计数器的时钟频率(=晶振频率*倍频/分频)
STC12C5A60S2手册上有的,比较清晰
11:57:58  
22:53:26  
这个好啊,正好在找这方面的
08:36:28  
8位的PWM的话,每个周期里要分为256个小脉冲,你要的占空比就是这256个脉冲里的高电平占这个整个256个电平的比例
22:08:11  
进来学习一下,这个PWM我也是不太会用
10:25:44  
学习学习&&赚积分
13:36:40  
17:13:58  
8位的PWM的话,每个周期里要分为256个小脉冲,你要的占空比就是这256个脉冲里的高电平占这个整个256个电平的比例&&学习了
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司21ic官方微信-->
请问怎么设置产生PWM波呢?然后周期怎么计算?
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
&&&刚学飞思卡尔芯片,请问怎么设置它产生PWM波,它所产生的方波周期怎么算?&&&如果我想产生一个1.5ms/18.5ms的PWM,应该怎么写?急着用,请大家帮帮忙,谢谢?
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
我用的芯片是9S12DT128DG
实习生, 积分 28, 距离下一级还需 22 积分
实习生, 积分 28, 距离下一级还需 22 积分
实习生, 积分 28, 距离下一级还需 22 积分
实习生, 积分 28, 距离下一级还需 22 积分
用中颖的SH69P862,内置PWM信号
用中颖的SH69P862,内置PWM信号。欢迎来电咨询,&&唐生
助理工程师, 积分 1310, 距离下一级还需 690 积分
助理工程师, 积分 1310, 距离下一级还需 690 积分
助理工程师, 积分 1310, 距离下一级还需 690 积分
助理工程师, 积分 1310, 距离下一级还需 690 积分
你设置timer就行了,很方便
把你的周期化成16位,放到mod寄存器把你的脉宽化成16位,放到tch设置好分频,&ms级64分频就行了设置好控制寄存器后,就会自动启动输出比较的pwm只要随时更改tch,就会产生可调的pwm.具体操作可以参考例程
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
&&&&请问4楼,你能把具体的程序写给我吗?英文我手头上的资料都是英文的,有很多看不懂,所以……想麻烦你帮帮忙了!谢谢!&&&&现在我需要一个1.5ms/18.5ms高低电平比的PWM波,谢谢!
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
请问下面这段程序要怎么改呢?
大概程序应该是下面这样吗?怎么去计算它的每个时间?要怎么该才能达到我的要求呢——1.5MS/20MS的占空比,请指点pwm_init:&&&&&&&&&&&ldaa&&#$10&&&&&&&&&&&staa&&PWME&&&&&;一通道&&&&&&&&&&&staa&&PWMPOL&&&&&&&&&&&ldaa&&#$00&&&&&&&&&&&staa&&PWMCLK&&&&;A时钟&&&&&&&&&&&ldaa&&#$00&&&&&&&&&&&staa&&PWMCAE&&&&&&&&&&&staa&&PWMCTL&&&&&;PWM8位&&&&&&&&&&&staa&&PWMSCLA&&&&&&&&&&&ldaa&&#$13&&&&&&&&&&&staa&&PWMDTY1&&&&;占空比&&&&&&&&&&&ldaa&&#$ff&&&&&&&&&&&staa&PWMPER1&&&&&;设周期值start:&&&&&&&&&&&ldaa&&#$10&&&&&&&&&&&staa&&PWME&&&&&&&&&&&ldaa&&#$00&&&&&&&&;开始工作&&&&&&&&&&&staa&&PWMCNT1&&&&&&&&&&&bra&&&*&&&&&&&&&&&end
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
怎么产生PWM波啊?
&&大家帮帮忙啦,上面的程序要怎么该才能达到我的要求呢——1.5MS/20MS的占空比,请指点!
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
高级工程师, 积分 7115, 距离下一级还需 885 积分
1.5MS/20MS的占空比
不需要动用PWM,用定时中断就可以了。1.5ms/20ms对于单片机来说太慢了。
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
中级技术员, 积分 100, 距离下一级还需 200 积分
但现在要求用PWM的,哪位高手会的话麻烦指点,急啊
但现在要求用PWM的,哪位高手会的话麻烦指点,急啊,谢谢!
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖
热门推荐 /7
MACOM在线研讨会正在召开~

我要回帖

更多关于 频率 波长 周期 的文章

 

随机推荐