AVR M16 寄存器注释Word格式.docx
《AVR M16 寄存器注释Word格式.docx》由会员分享,可在线阅读,更多相关《AVR M16 寄存器注释Word格式.docx(25页珍藏版)》请在冰点文库上搜索。
![AVR M16 寄存器注释Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/aa5b8732-853d-4a8c-9b3c-94f445097977/aa5b8732-853d-4a8c-9b3c-94f4450979771.gif)
ADC转换结果左对齐
~
单端输入
正差分输入
负差分输入
增益
00000
00111
ADC0~ADC7
01000
ADC0
10x
01001
ADC1
01010
200x
01011
200x
01100
ADC2
01101
ADC3
01110
01111
10000
1x
10001
10010
10011
10100
ADC4
10101
ADC5
10110
ADC6
10111
ADC7
11000
11001
11010
11011
11100
11101
11110
1.23V(VBG)
11111
0V(GND)
ADMUX
0;
ADCSRA
ADEN
ADSC
ADFR
ADIF
ADIE
ADPS2
ADPS1
ADPS0
ADEN:
ADC使能,转换过程中禁止ADC则立即中止转换。
ADSC:
ADC开始转换。
在转换过程中ADSC为1直到转换结束。
ADFR:
是否工作在连续模式,该位写0,停止连续转换模式。
ADIF:
ADC中断标志。
中断服务硬件清零。
ADIE:
ADC中断使能
ADSP2
ADSP0:
ADC预分频选择
000:
2分频,001到111为2到128分频
ADC在50~200KHz时钟时能获得最大精度
ADCSRA
ADCC
&
ADCH
ADC转换结果寄存器,差分通道结果以2的补码形式表示,ADC数据必须读过
ADCH后才可进行数据更新。
对于精度小于8位的左对齐数据可只读ADCH。
数据右对齐(ADLAR
0)
ADCH-------------------------------------------------------------
-
ADC9
ADC8
ADCL-------------------------------------------------------------
//
init_timer()
//SFIOR
TSM
ACME
PUD
PSR0
PSR321|
TSM:
T/C同步模式。
置位时,PSR0和PSR321保持其数据直到被更新或TSM被清零
PSR0:
T/C0预分频器复位,置位时使预频器复位,直到为0时表示复位完成
PSR321:
T/C3、2、1预分频繁器复位,此位读总为0
ACME:
模拟比较器使能
PUD:
所有端口上拉电阻禁止,置1为禁止
SFIOR
init_timer0()
//TCCR0
T/C0控制寄存器
FOC0
WGM00
COM01
COM00
WGM01
CS02
CS01
CS00
FOC0:
强制输出比较启动
WGM01,
WGM00:
工作模式选择
00:
普通模式,01:
PWM相位修正,
10:
比较匹配时清除计数器模式(CTC模式),11:
快速PWM
COM01,
COM00:
比较匹配时的输出模式
WGMxx为普通模式或CTC模式时
OC0未连接,
01:
OC0取反,
OC0清零,
11:
OC0置位
WGMxx为相位修正PWM模式
保留,
升序匹配时清零OC0;
降序匹配时置位OC0,
升序匹配时置位OC0;
降序匹配时清零OC0
WGMxx为快速PWM模式
OC0未连接
保留
匹配时OC0清零;
计数到TOP时OC0置位
匹配时OC0置位;
计数到TOP时OC0清零
CS02,CS01,CS00:
T/C0时钟预分频选择
无时钟,T/C不工作
001:
1/1
010:
1/8
011:
1/32
100:
1/64
101:
1/128
110:
1/256
111:
1/1024
TCCR0
//TCNT0
T/C0计数寄存器,8位
//OCR0
输出比较寄存器,8位
//TIMSK
T/C中断屏蔽寄存器
OCIE2
TOIE2
TICIE1|
OCIE1A|
OCIE1B|
TOIE1
OCIE0
TOIE0
OCIE2:
T/C2输出比较匹配中断使能
TOIE2:
T/C2溢出中断使能
TICIE1:
T/C1输入捕捉中断使能
OCIE1A:
T/C1输出比较A匹配中断使能
OCIE1B:
T/C1输出比较B匹配中断使能
TOIE1:
T/C1溢出中断使能
OCIE0:
T/C0输出比较匹配中断使能
TOIE0:
T/C0溢出中断使能
TIMSK
//ETIMSK
T/C扩展中断屏蔽寄存器
TICIE3|
OCIE3A|
OCIE3B|
TOIE3
OCIE3C|
OCIE1C|
TICIE3:
T/C3输入捕捉中断使能
OCIE3A:
T/C3输出比较A匹配中断使能
OCIE3B:
T/C3输出比较B匹配中断使能
TOIE3:
T/C3溢出中断使能
OCIE3C:
T/C3输出比较C匹配中断使能
OCIE1C:
T/C1输出比较C匹配中断使能
ETIMSK
//TIFR
T/C中断标志寄存器
OCF2
TOV2
ICF1
OCF1A
OCF1B
TOV1
OCF0
TOV0
OCF2:
T/C2输出比较匹配标志
TOV2:
T/C2溢出标志
ICF1:
T/C1输入捕捉标志位
OCF1A:
T/C1输出比较A匹配标志位
OCF1B:
T/C1输出比较B匹配标志位
TOV1:
T/C1溢出标志
OCF0:
T/C0输出比较匹配标志
TOV0:
T/C0溢出标志
//ETIFR
扩展的T/C中断标志寄存器
ICF3
OCF3A
OCF3B
TOV3
OCF3C
OCF1C
ICF3:
T/C3输入捕捉匹配标志位
OCF3A:
T/C3输出比较A匹配标志位
OCF3B:
T/C3输出比较B匹配标志位
TOV3:
T/C3溢出标志位
OCF3C:
T/C3输出比较C匹配标志位
OCF1C:
T/C1输出比较C匹配标志位
//ASSR
T/C0异步状态寄存器
AS0
TCN0UB|
OCR0UB|
TCR0UB|
AS0:
T/C0使用外部时钟
TCN0UB:
TCNT0更新中,写TCNT0时将置位,为0时表明TCNT0可以写入新值
OCR0UB:
OCR0更新中,写OCR0时将置位,为0表明OCR0可以写入新值
TCR0UB:
TCCR0更新中,写TCCR0时将置位,为0表明TCCR0可以写入新值
ASSR
init_timer2()
{
//TCCR2
T/C2控制寄存器
FOC2
WGM20
COM21
COM20
WGM21
CS22
CS21
CS20
FOC2:
WGM21,
WGM20:
COM21,
COM20:
CS22,CS21,CS20:
TCCR2
//TCNT2
T/C2计数寄存器,8位
//OCR2
T/C2比较寄存器,8位
init_timer1()
//TCCR1A
T/C1控制寄存器A
COM1A1|
COM1A0|
COM1B1|
COM1B0|
COM1C1|
COM1C0|
WGM11
WGM10
//TCCR1B
T/C1控制寄存器B
ICNC1
ICES1
WGM13
WGM12
CS12
CS11
CS10
//TCCR1C
T/C1控制寄存器C
FOC1A
FOC1B
FOC1C
COM1A1,COM1A0:
通道A的比较输出模式
COM1B1,COM1B0:
通道B的比较输出模式
COM1C1,COM1C0:
通道C的比较输出模式
WGM13,WGM12,WGM11,WGM10:
波型发生模式:
比较输出模式(CTC模式),非PWM
00
普通端口操作,OC1A/OC1B/OC1C未连接
01
比较匹配时OC1A/OC1B/OC1C电平取反
10
比较匹配时清零OC1A/OC1B/OC1C