浅谈ATmega 16单片机的TC0控制寄存器和TC1控制寄存器.docx
《浅谈ATmega 16单片机的TC0控制寄存器和TC1控制寄存器.docx》由会员分享,可在线阅读,更多相关《浅谈ATmega 16单片机的TC0控制寄存器和TC1控制寄存器.docx(10页珍藏版)》请在冰豆网上搜索。
浅谈ATmega16单片机的TC0控制寄存器和TC1控制寄存器
浅谈ATmega16单片机的T/C0控制寄存器和T/C1控制寄存器
T/C0相关1.TCCR0T/C0控制寄存器
FOC0WGM00COM01COM00WGM01CS02CS01CS00
位7FOC0:
强制输出比较位。
FOC0仅在WGM[01:
00]设置为非PWM模式时才有效。
为了保证与未来器件的兼容性,在使用PWM时,写TCCR0要对其清零。
对其写1后,将立即进行比较操作。
比较匹配输出引脚OC0将按照COM[01:
00]的设置输出相应的电平。
要注意FOC0类似一个锁存信号,真正对强制输出比较起作用的是COM[01:
00]的设置。
FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对进行清零的操作。
读FOC0的返回值永远为0。
位6,位3WGM[01:
00]:
波形产生模式
这两位控制的计数序列、计数器的最大值及产生的波形。
T/C0支持的模式有:
普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM模式,详见下表:
模式WGM01WGM00T/C的TOPOCR0的TOV0的
(CTC0)(PWM0)工作模式更新时间置位时刻
000普通0xFF立即更新0xFF
101修正PWM0xFF0xFF0x00
210CTCOCR0立即更新0xFF
311快速PWM0xFF0xFF0xFF
位5,位4COM[01:
00]:
比较匹配输出模式
这些位决定了比较匹配发生时输出引脚OC0的电平。
如果COM[01:
00]中的一位或全部都
置位,OC0以比较匹配输出的方式进行工作。
同时其方向控制位要设置为1以使能输出驱动器。
当OC0连接到物理引脚上时,COM[01:
00]的功能依赖于WGM[01:
00]的设置。
比较输出模式,非PWM模式
COM01COM00说明
00正常的端口操作,不与OC0引脚物理连接
01比较匹配发生时OC0取反
10比较匹配发生时OC0清零
11比较匹配发生时OC0置位
比较输出模式,快速PWM模式
COM01COM00说明
00正常的端口操作,不与OC0引脚物理连接
01保留
10比较匹配发生时将清零OC0,计数到0XFF时OC0置位
10比较匹配发生时将置位OC0,计数到0XFF时OC0清零
比较输出模式,相位修正PWM模式
COM01COM00说明
00正常的端口操作,不与OC0引脚物理连接
01保留
10在向上计数发生比较匹配时将清零OC0,在向下计数发生比匹配OC0置位
10在向上计数发生比较匹配时将置位OC0,在向下计数发生比匹配OC0清零
位[2:
0]CS[02:
00]:
时钟选择
用于选择T/C0的时钟源。
CS02CS01CS00说明
000无时钟,T/C不工作
001clk/1(没有预分频)
010clk/8(来自预)
011clk/64(来自预分频器)
100clk/256(来自预分频器)
101clk/1024(来自预分频器)
110时钟由T0引脚输入,下降沿触发
111时钟由T0引脚输入,上升沿触发
2.TCNT0T/C0计数寄存器
3.OCR0输出比较寄存器
4.TIMSKT/C中断屏蔽寄存器
OCIE2TOIE2TICE1OCIE1AOCIE1BTOIE1OCIE0TOIE0
位1OCIE0:
T/C0输出比较匹配中断使能位。
当OCIE0和状态寄存器的全局中断使能位I都为1时,T/C0的输出比较匹配中断使能。
当T/C0的比较匹配发生,即TIFR中的OCF0置位时,产生输出比较匹配中断。
位0TOIE0:
T/C0溢出中断使能。
当TOIE0和状态寄存器的全局中断使能位I都为1时,T/C0的溢出中断使能。
当T/C0发生计数溢出,即TIFR中的TOV0位置位时,产生溢出中断。
5.TIFRT/C中断标志寄存器
OCF2TOV2ICF1OCF1AOCF1BTOV1OCF0TOV0
位1OCF0:
T/C0输出比较标志位0。
当T/C0与OCR0(输出比较寄存器0)的值匹配时,OCF0置位。
此位在中断服务程序里硬件清零,也可以对其写1来清零。
当SREG中的位I、OCIE0(T/C0比较匹配中断使能)和OCF0都置位时,中断服务程序得到执行。
位0TOV0:
T/C0溢出标志。
当T/C0溢出时,TOV0置位。
执行相应的中断服务程序时此位硬件清零。
此外,TOV0也可以通过写1来清零。
当SREG中的位I、TOIE0(T/C0溢出中断使能)和TOV0都置位时,中断服务程序得到执行。
注意:
在相位修正PWM模式中,当T/C0在0x00改变记数方向时,TOV0置位。
6.SFIOR特殊功能寄存器
ADTS2ADTS1ADTS0ACMEPUDPSR2PSR10
位0PSR0:
T/C1与T/C0的预分频器复位。
PSR10置位时T/C1与T/C0的预分频器复位,操作完成后这一位由硬件清零。
写入世时不会引起任何操作。
T/C1与T/C0共用这一预分频器,且预分频器复位对两个定时器都有影响。
读该位总是返回0。
T/C1相关寄存器1.TCCR1AT/C1控制寄存器
COM1A1COM1A0COM1B1COM1B0FOC1AFOC1BWGM11WGM10
位7:
6COM1A[1:
0]:
通道A的比较输出模式
位5:
4COM1B[1:
0]:
通道B的比较输出模式
比较输出模式,非PWM模式
COM1A1COM1A0说明
COM1B1COM1B0
00正常的端口操作,不与OC1A/OC1B引脚物理连接
01比较匹配发生时OC0取反
10比较匹配发生时OC0清零
11比较匹配发生时OC0置位
比较输出模式,快速PWM模式
COM1A1COM1A0说明
COM1B1COM1B0
00正常的端口操作,不与OC1A/OC1B引脚物理连接
01WGM[3:
0]=15:
比较匹配时OC1A取反,OC1B不占用物理引脚。
WGM[3:
0]为其它值时为普通端口操作,非OC1A/OC1B功能
10比较匹配发生时将清零OC1A/OC1B,计数到0XFF时OC1A/OC1B置位
11比较匹配发生时将置位OC1A/OC1B,计数到0XFF时OC1A/OC1B清零
比较输出模式,相位修正PWM模式及相频修正PWM模式
COM01COM00说明
00正常的端口操作,不与OC1A/OC1B引脚物理连接
01WGM13:
0=9或14:
比较匹配时OC1A取反,OC1B不占用物理引脚。
WGM13:
0为其它值时为普通端口操作,非OC1A/OC1B功能
10升序记数时比较匹配将清零OC1A/OC1B,
降序记数时比较匹配将置位OC1A/OC1B
11升序记数时比较匹配将置位OC1A/OC1B,
降序记数时比较匹配将清零OC1A/OC1B
位3FOC1A:
通道A强制输出比较
位2FOC1B:
通道B强制输出比较
FOC1A/FOC1B只有当WGM[13:
10]指定为非PWM模式时被激活。
为与未来器件兼容,工作在PWM模式下对TCCR1A写入时,这两位必须清零。
当FOC1A/FOC1B位置1,立即强制波形产生单元进行比较匹配。
COM1X[1:
0]的设置改变OC1A/OC1B的输出。
注意FOC1A/FOC1B位作为选通信号。
COM1x1:
0位的值决定强制比较的效果。
在CTC模式下使用OCR1A作为TOP值,FOC1A/FOC1B选通即不会产生中断也不会清除定时器。
FOC1A/FOC1B位总是读为0。
位1:
0WGM1[1:
0]:
波形发生模式
这两位与位于TCCR1B寄存器的WGM[13:
12]相结合,用于控制计数器的计数序列计数器计数的上限值和确定波形发生器的工作模式。
T/C支持的工作模式有:
普通模式(计数器),比较匹配时清零定时器(CTC)模式,及三种脉宽调制(PWM)模式。
模式WGM13WGM12WGM11WGM10定时器/计数器上限值OCR1x更OV1置位
(CTC1)(PWM11)(PWM10)工作模式限值TOP新时刻T时刻
00000普通模式0xFFFF立即更新0xFFFF
100018位相位修正PWM0x00FFTOP0x0000
200109位相位修正PWM0x01FFTOP0x0000
3001110位相位修正PWM0x03FFTOP0x0000
40100CTCOCR1A立即更新0xFFFF
501018位快速PWM0x00FFTOPTOP
601109位快速PWM0x01FFTOPTOP
7011110位快速PWM0x03FFTOPTOP
81000相频修正PWMICR100X0000
91001相频修正PWMOCR1A00X0000
101010相位修正PWMICR1TOP0X0000
111011相位修正PWMOCR1ATOP0X0000
121100CTCICR1立即更新0XFFFF
131101保留
141110快速PWMICR1TOPTOP
151111快速PWMOCR1ATOPTOP
2.TCCR1BT/C1控制寄存器
ICNC1ICES1WGM13WGM12CS11CS10
位7ICNC1:
输入捕捉噪声抑制使能位。
置位ICNC1将使能输入捕捉噪声抑制功能。
此时外部引脚ICP1的输入被滤波。
其作用是从ICP1引脚连续进行4次采样。
如果4个采样值都相等,那么信号送入边沿检测器。
因此使能该功能使得输入捕捉被延迟了4个时钟周期。
位6ICES1:
输入捕捉触发沿选择
该位选择使用ICP1上的哪个边沿触发捕获事件。
ICES为0选择的是下降沿触发输入捕捉;ICES1为1选择的是逻辑电平的上升沿触发输入捕捉。
按照ICES1的设置捕获到一个事件后,计数器的数值被复制到ICR1寄存器。
捕获事件还会置为ICF1。
如果此时中断使能,输入捕捉事件即被触发。
当ICR1用作TOP值(见TCCR1A与TCCR1B寄存器中WGM[13:
10]位的描述)时,ICP1与输入捕捉功能脱开,从而输入捕捉功能被禁用。
位5保留位
该位保留。
为保证与将来器件的兼容性,写TCCR1B时,该位必须写入0。
位4:
3WGM1[3:
2]:
波形发生模式
位2:
0CS1[2:
0]:
时钟选择
用于选择T/C1的时钟源。
CS12CS11CS10说明
000无时钟,T/C1不工作
001clk/1(没有预分频)
010clk/8(来自预分频器)
011clk/64(来自预分频器)
100clk/256(来自预分频器)
101clk/1024(来自预分频器)
110时钟由T1引脚输入,下降沿触发
111时钟由T1引脚输入,上升沿触发
3.TCNT1T/C1计数寄存器
4.OCR1A、OCR1BT/C1输出比较寄存器
5.ICR1T/C1输入捕获寄存器
6.TIMSKT/C中断屏蔽寄存器
OCIE2TOIE2TICE1OCIE1AOCIE1BTOIE1OCIE0TOIE0
位5TICIE1:
T/C1输入捕捉中断使能。
当该位被设为1,且状态寄存器中的I位被设为1时,T/C1