永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-02-11 10:53
是不是产生中断的频率越高,定时器发脉冲的频率也就高呢?
最佳答案
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为例进行说明的,其它方式可能不一样。

设置好后,由硬件自动切换,不需软件来操作。
全部回答

额,也不讲明用什么编译器,我用的是gcc,mega16,8m外部晶振

其他看注释,熔丝位设为外部晶振,

#include<avr/io.h> #include<avr/interrupt.h>

int main(void) {  ddrb = 0xff;  portb = 0xff;  tcnt1h = 15535/256;  tcnt1l = 15535%256;//计50000次才溢出  timsk |= (1 << toie1);//使能中断  tccr1b |= (1 << cs11);//8分频  sei();  while(1)  {  }  }

volatile unsigned int i; signal(sig_overflow1) {  tcnt1h = 15535/256;  tcnt1l = 15535%256;  i ++;  if(i >= 20)//晶振为8m,8分频,每次溢出为跳50000次,1s/((1/8000000)*50000*8)=20  {   //所以循环20次   i = 0;   portb ^= 0xff; //pb口接led,实现1s翻转。  } }

欢迎追问。。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
到底什么是带符号的8位二进制
(x2-x-3)(x2-x-5)-3因式分解过程
我将杯子伸向耶稣词谱
一朋友让我假扮他的女友参加聚会,去吗?
胃酸过多的人吃猴头菇好不好
嘉华百货在什么地方啊,我要过去处理事情
伤感游戏网名大全
如果在蒸馏中温度高于该试剂沸点那试剂会出来
一不小心把电脑所有磁盘关了怎么办dfe盘都没
古希腊是黑人文化吗?不然为什么希腊雕像的头
林坤商行我想知道这个在什么地方
风火毒用什么药治
【cad如何计算面积】如何用CAD计算面积和周长
斗战神宠物4洞怎么开
黑龙江省农垦总局建三江分局种子质量监督检测
推荐资讯
庄子在《骈拇》中写道:“自三代以下者,天下
莲花竹可以从中间砍一半能插活吗,因为下面一
童心幼儿园在哪里啊,我有事要去这个地方
台前到濮阳走高速多少公里
钟镇涛演的一部电影名字
金陵饭店-KTV地址有知道的么?有点事想过去
韩寒看好的年轻作家
宝马X6副驾驶储物箱怎么打开
ST12冷镦材料与STH12、STFA 12、STBA 12、STK
求<芊芊>回音哥的吉他谱,我想用吉他弹奏
热镀管在建筑消防中起的作用是什么?
元马镇马街社区老年协会地址在什么地方,我要
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?