原创 AVR单片机T/C1的几种工作模式

2009-2-12 14:33 3680 7 7 分类: MCU/ 嵌入式

AVR单片机T/C1的几种工作模式(16位)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


其作用:


l       普通模式


l       CTC模式


l       快速PWM模式


l       相位修正PWM模式


l       相位频率修正PWM模式


l       输入捕获模式


一、中断系统


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />


#pragma interrupt handler <name>: <vector number>


Name:中断函数名,自定义。


vector number:中断向量号。


如:定时器1溢出中断编程 #pragma interrupt handler miao: 9


 


二、T/C1相关的寄存器


1T/C1控制寄存器A



2T/C1控制寄存器B



 





3T/C1中断屏蔽寄存器



注:使用中断时必须先开启总中断SREG|=BIT(7)


4、计数寄存器



5、输出比较寄存器<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1A-OCR1A



6、输出比较寄存器1B-OCR1B



7、输入捕捉寄存器ICR1H ICR1L



三、T/C1相关的模式


l       普通模式(中断定时) 编程方法:在TCCR1B选择 CS121110 的分频器 如:256分频, 8M/256=31250,芯片执行一句指令需要时间1/31250 S,所以从65535-31250=3428565535溢出时间为1S34285十六进制为85ED,在计数寄存器TCNT1H=0X85TCNT1L=0XED(注:编程时先写高位,再写低位;而执行程序是先读低位再高位)。中断寄存器设置:TIMSK|=BIT2)即其第二位置1SREG|=BIT7)。


TCCR1B=0X04;


    TCNT1H=0X85;


    TCNT1L=0XED;


    TIMSK|=BIT(2);


    SREG|=BIT(7);


l       CTC模式(利用PD4PD5的第二功能)


用于输出50%占空比的方波信号


 用于产生准确的连续定时信号


 



 


 


编程方法:定义CTC模式,选择WGM13121110 模式选择位,上限值可固定可定义,如定义OCR1A


TCCR1A选择比较输出模式COM1A10=01 (确定是CTC)比较匹配是电平取反,输出50%占空比。


频率由以下公式确定:变量N 代表预分频因子(1832,64256,1024)


,从输出多少HZ方波来确定上限值OCR1A   void main()  //此程序是编输出2000HZ的方波


{  DDRD|=0X30;


                                                 TCCR1A=0X50;// COM1A10=1


                                                 TCCR1B=0X09;


                                                 OCR1A=1999; }


l       快速PWM模式(利用PD4PD5的第二功能)



其作用跟CTC模式差不多,选择WGM13121110 模式选择位,只是其可以改变PWM信号占空比,(注:COMnx10=23已定)  计算公式:fPWM=fclk_IO/(N*(1+TOP)) 变量N 代表预分频因子(1832,64256,1024) TOP可固定,可由OCR1A定值,占空比由OCR1B定(注:因为OCR1A被保存数据就不能由它来实现PWM信号,由OCR1B实现)


void main()//PD4PD4输出高电平持续2MSPD5输出占空比为50%,因为其COMnx10=1


{ DDRD|=0X30;


TCCR1A=0X63;


    TCCR1B=0X1B;


    OCR1A=1249;//产生10MSPWM信号,保存上限值,但不能输出PWM信号


    OCR1B=250; //占空比为20%,既PD4输出高电平持续2MS


}


l       相位修正PWM模式



其作用跟PWM模式差不多,选择WGM13121110 模式选择位。


 


l       输入捕获模式


T/C 的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。


外部事件发生的触发信号由引脚ICP1 输入,也可通过模拟比较器单元来实现。


时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条