AVR单片机中,如果不用PWM,那么如果控制定时器输出一个脉冲和一串脉冲,怎么控制定时器输出脉冲的频率。

是不是产生中断的频率越高,定时器发脉冲的频率也就高呢?那么当比较匹配后是自动切换电平呢,还是必须由软件来改变电平... 是不是产生中断的频率越高,定时器发脉冲的频率也就高呢?
那么当比较匹配后是自动切换电平呢,还是必须由软件来改变电平
展开
 我来答
看看奋7301
2010-08-21 · TA获得超过168个赞
知道答主
回答量:69
采纳率:0%
帮助的人:92.6万
展开全部
1.当定时中断到来时,可以对某个I/O进行置位或者清零来达到输出脉冲的目的。
如:
10ms的定时中断,当第一次中断来时,在PA0上输出高电平;
第二次中断时,在PA0上输出低电平;
这样就可以输出频率一定,占空比也一定的脉冲串或者单片脉冲(如检测某个状态,当符合时,才输出高/低电平)。

我们可以看到,这样做可能很麻烦,特别是在占空比或者周期要时刻改变的情况下,就更复杂了,要不断的去检测某些状态值,再根据这些值去进行相应的设置。

如果使用PWM,如快速PWM模式,就能很方便的进行更改周期和占空比。

选用哪种方式,当然要看具体实现什么目的了。

2.对于产生中断的频率越高,脉冲频率也会相应的增高(特殊情况除外)。

3.这里以快速PWM模式为例说明:
在模式14的条件下,即WGM13:0=1110,其输入捕捉寄存器当做为TOP值(即当TCNT1的值和此值一样时,则TCNT1返回到0x0000)。比较寄存器用于改变占空比,当TCNT1与此值比较匹配时,则输出引脚上电平发生跳变,达到改变占空比的目的。

改变TOP 就会改变频率,改变比较匹配值,则改变占空比。

补充回答:
1.定时器每次溢出后,其值返回到0x00(8位定时器),所以,如果你的初值不是0x00,就必须由软件重新赋初值。

2.在PWM模式下与我们所用定时器是不一样的,比较匹配后,根据设置来对输出电平进行切换。对于捕捉值,只是定时计数寄存器计数到此值时,则返回到0x0000,即使此时还没有到0xFFFF(捕捉值小于0xFFFF)。

意思是说,这个可以不用手动设置初值,但是如果你想改变周期或者占空比什么的,就得改变这些值了。

以上说明都是以快速PWM为例进行说明的,其它方式可能不一样。

设置好后,由硬件自动切换,不需软件来操作。
bincumt
2010-08-12 · TA获得超过152个赞
知道答主
回答量:41
采纳率:0%
帮助的人:52.7万
展开全部
是的,中断时产生脉冲嘛。中断产生频率高,自然溢出中断脉冲也高了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幻化溪涧
2010-08-21 · TA获得超过738个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:201万
展开全部
楼上的回答的不错~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式