收藏 分销(赏)

avr学习重点笔记专业资料.doc

上传人:a199****6536 文档编号:2999857 上传时间:2024-06-12 格式:DOC 页数:84 大小:3.72MB 下载积分:16 金币
下载 相关 举报
avr学习重点笔记专业资料.doc_第1页
第1页 / 共84页
avr学习重点笔记专业资料.doc_第2页
第2页 / 共84页


点击查看更多>>
资源描述
MCU控制寄存器—MCUCR Bit 1 – IVSEL:中断向量选取 IVSEL为"0“时,中断向量位于Flash存储器起始地址;IVSEL为"1“时,中断向量转移到 Boot 区起始地址。实际 Boot 区起始地址由熔丝位 BOOTSZ 拟定。 为了防止无意识地变化中断向量表,修改 IVSEL 时需要遵循如下过程: 1. 置位中断向量修改使能位 IVCE 2. 在紧接 4 个时钟周期里将需要数据写入 IVSEL,同步对 IVCE 写 ”0”执行上述序列时中断自动被禁止。其实,在置位 IVCE 时中断就被禁止了,并始终保持到写 IVSEL 操作之后下一条语句。如果没有 IVSEL 写操作,则中断在置位 IVCE 之后4个时钟周期保持禁止。需要注意是,虽然中断被自动禁止,但状态寄存器位I并不会因而而受到影响。 Note:若中断向量位于Boot Loader区, 且Boot锁定位BLB02被编程, 则执行应用区程序时中断被禁止;若中断向量位于应用区,且 Boot锁定位 BLB12 被编程, 则执行 Boot Loader区程序时中断被禁止。关于Boot锁定位细节请参见P241”Boot Loader 支持 RWW自编程, ATmega88 与 ATmega168” 。 该位在 ATmega48 中无效。 • 位 0 – IVCE:中断向量修改使能 变化 IVSEL 时 IVCE 必要置位。在 IVCE 写入 4 个时钟周期或 IVSEL 写操作之后,IVC被硬件清零。如前面所述,置位 IVCE 将禁止中断。代码如下: void Move_interrupts(void) { /* 使能中断向量修改 */ MCUCR = (1<<IVCE); /* 将中断向量转移到 boot区 */ MCUCR = (1<<IVSEL); } • 位 7 – I:全局中断使能 Sei();全局中断使能,cli();对I清零。 • 位 6 – T:位拷贝存储 位拷贝指令 BLD 和 BST 运用 T 作为目或源地址。BST 把寄存器某一位拷贝到 T,而BLD 把 T 拷贝到寄存器某一位。 • 位 5 – H:半进位标志 半进位标志 H 表达算术操作发生了半进位。此标志对于 BCD 运算非常有用。详见 “ 指令集 ” 阐明。 • 位 4 – S:符号位, S = N ⊕ V S 为负数标志 N 与 2 补码溢出标志 V 异或。详见指令集阐明。 • 位 3 – V:2 补码溢出标志 支持 2 补码运算。详见指令集阐明。 • 位 2 – N:负数标志 表白算术或逻辑操作成果为负。详见指令集阐明。 • 位 1 – Z:零标志 表白算术或逻辑操作成果为零。详见指令集阐明。 • 位 0 – C:进位标志 表白算术或逻辑操作发生了进位。详见 指令集阐明。 _SEI();/* 置位全局中断使能标志 */ _SLEEP();/* 进入休眠模式,等待中断发生 */ /* 注意 :在执行任何被挂起中断之前MCU将一方面进入休眠模式 */ 振荡器标定寄存器—OSCCAL 休眠模式控制寄存器—SMCR • 位 0 – SE:休眠使能 Smcr|=(1《se); • 位 3 – WDRF:看门狗复位标志 看门狗复位发生时置位。上电复位将使其清零,也可以通过写 ”0” 来清除。 • 位 2 – BORF:掉电检测复位标志 掉电检测复位发生时置位。上电复位将使其清零,也可以通过写 ”0” 来清除。 • 位 1 – EXTRF:外部复位标志 外部复位发生时置位。上电复位将使其清零,也可以通过写 ”0” 来清除。 • 位 0 – PORF:上电复位标志 上电复位发生时置位。只能通过写 ”0” 来清除。 为了使用这些复位标志来辨认复位条件,顾客应当尽早读取 MCUSR 数据,然后将其复 位。如果在其她复位发生之前将此寄存器复位,则后续复位源可以通过检查复位标志来识 别。 看门狗定期器控制寄存器— WDTCSR• 位 7 – WDIF:看门狗超时中断标志 当看门狗定期器超时且定期器作为中断使用时,该位置位。执行相应中断解决程序时 WDIF 由硬件清零。也可通过对标志位写 "1” 对 WDIF 清零。当 SREG 寄存器中 I 位与 WDIE 也置位时, MCU 执行看门狗超时中断。 • 位 6 – WDIE:看门狗超时中断使能 WDIE置"1”时WDE被清零,状态寄存器中I位置位,看门狗超时中断使能。当看门狗定 时器浮现超时时执行相应中断程序。 如果 WDE置位,当超时浮现时, WDIE 由硬件自动清零。 这对使用中断时保证看门狗复 位安全性非常有效。在 WDIE 位被清零后,下一种超时将引起系统复位。为避免看门狗 复位,在每次中断后必要对 WDIE置位。•Bit 4 – WDCE:看门狗修改使能 清零 WDE时必要置位 WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接 4 个时 钟周期之后将其清零。请参照关于 WDE 阐明来禁止看门狗。修改预分频器也必要置位 WDCE,如 P47“变化看门狗定期器配备时间序列 ” 所示。 • 位 3 – WDE:使能看门狗 WDE为"1“时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1“时WDE才干清零。 如下为关闭看门狗环节: 1. 在同一种指令内对 WDCE和 WDE 写 "1“,虽然 WDE 已经为 "1“。 2. 在紧接4 个时钟周期之内对 WDE写 "0”。这会禁用看门狗。 工作于安全级别 2 时,虽然使用了上述算法,也无法禁止看门狗定期器。参见 P47“ 改 变看门狗定期器配备时间序列 ” 所示。 工作于安全级别 1 时, WDE 被 MCUSR WDRF 功能所替代 ,请参见 P41”MCU 状态 寄存器 – MCUSR” 中关于 WDRF 阐明。这意味着当 WDRF 置位时 WDE 同步置位。 为清零 WDE,在使用上述过程禁用看门狗之前必要清零 WDRF。这一特性保证在浮现故 障时有多重复位,且在故障解决后可以安全地启动。 Note:如果在应用中不需要使用看门狗定期器,则在器件初始化时应运营看门狗禁用程序。如果 看门狗被意外使能,如程序跑飞或浮现 BOD,器件将会复位,且在结束复位时 WDRF 标 志位置位。这将自动激活看门狗,引起新看门狗复位。为避免浮现这种状况,在初始化 过程中应用程序应将 WDRF 标志位与 WDE控制位清零 。 void WDT_off(void) { /*MCUSR 中 WDRF清零*/ MCUSR = 0x00 /* 置位WDCE 与 WDE */ WDTCSR = (1<<WDCE) | (1<<WDE); /* 关闭WDT */ WDTCSR = 0x00; } unsigned char i; ... /* 定义上拉电阻和设立高电平输出*/ /* 为端口引脚定义方向 */ PORTB = (1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0); DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* 为了同步插入 nop指令 */ _NOP(); /* 读取端口引脚 */ i = PINB; ...• 位 4 – PUD:禁用上拉电阻 PUD 置位时,虽然寄存器 DDxn 和 PORTxn 配备为使能上拉电阻 ({DDxn,PORTxn} = 0b01), I/O 端口上拉电阻也被禁止。请参见 P60”配备引脚 ” 。 端口B第二功引脚配备如下: •XTAL2/TOSC2/PCINT7 – 端口 B,位 7 XTAL2:芯片时钟振荡器引脚 2。作为晶振或低频晶振时钟引脚。作为时钟引脚时不能 作为 I/O 引脚。 TOSC2:定期器振荡器引脚 2。只有选取了内部标定 RC 振荡器作为系统时钟源,并且 设立了寄存器 ASSR AS2 位以容许使用异步时钟定期器时才可使用。当ASSR 寄存器 AS2 位置位且 EXCLK 位清零,从而使能了定期器 / 计数器 2 异步时钟功能时,PB7 与端口引脚脱离,作为振荡放大器反向输出端。在该模式下,时钟晶体连接到该引脚, 且不能作为 I/O 引脚。 PCINT7:引脚电平变化中断源 7。 PB7 可以作为外部中断源。 如果 PB7 作为时钟引脚使用, DDB7、PORTB7 与 PINB7读返回值为 0。•XTAL1/TOSC1/PCINT6 – 端口 B,位 6 XTAL1 :芯片时钟振荡器引脚 1。可用于除内部标定 RC 振荡器外所有时钟源。作为时 钟引脚时不能作为 I/O 引脚。 TOSC1:定期器振荡器引脚 1。只有选取了内部标定 RC 振荡器作为系统时钟源,并且 设立了寄存器 ASSR AS2 位以容许使用异步时钟定期器时才可使用。当ASSR 寄存器 AS2 位置位,从而使能了定期器 / 计数器 2 异步时钟功能时,PB6 与端口引脚脱离, 作为振荡放大器反向输入端。在该模式下,时钟晶体连接到该引脚,且不能作为 I/O 引 脚。 PCINT6 :引脚电平变化中断源 6。 PB6 可以作为外部中断源。 如果 PB6 作为时钟引脚使用, DDB6、PORTB6 与 PINB6 均读为 "0”。•SCK/PCINT5 – 端口 B,位 5 SCK :用于使用 SPI 串行总线接口。当 SPI 使能且为从机时,无论 DDB5 为什么种设立,该 引脚被强置为输入。当使能 SPI 且为主机时,该引脚数据方向由 DDB5 来控制。虽然 该位被 SPI 强制为输入,但内部上拉电阻依然由 PORTB5 来控制。 PCINT5 :引脚电平变化中断源 5。 PB5 可以作为外部中断源。 •MISO/PCINT4 – 端口 B,位 4 MISO :SPI 总线接口主机数据输入 / 从机数据输出端。在 SPI 使能,且工作于 SPI 主机 模式时,无论 DDB4 为什么值, PB4 被设立为输入;为 SPI 从机模式时,该引脚数据方 向由DDB4控制。当该引脚被SPI强制为输入时,内部上拉电阻依然由PORTB4来控制。 PCINT4 :引脚电平变化中断源 4。 PB4 可以作为外部中断源。•MOSI/OC2/PCINT3 – 端口 B,位 3 MOSI :SPI 总线接口主机数据输出 / 从机数据输入端。在 SPI 使能,且工作于从机模式 时,无论 DDB3为什么值, PB3 被设立为输入;为 SPI 主机模式时,该引脚数据方向由 DDB3 控制。当该引脚被 SPI 强制为输入时,内部上拉电阻依然由 PORTB3 来控制。 OC2,输出比较匹配输出。PB3 引脚可作为定期器 / 计数器 2 比较匹配外部输出口。此 时,PB3 引脚必要设立为输出 (DDB3=1) 。在 PWM 应用中,OC2 引脚还作为 PWM 定 时器模块输出引脚。 PCINT3 :引脚电平变化中断源 3。 PB3 可以作为外部中断源。 •SS/OC1B/PCINT2 – 端口 B,位 2 SS :从机选取输入。在 SPI 使能,且工作于从机模式时,无论 DDB2 为什么值,PB2 脚被设 置为输入。当 PB2 被外部拉低时,则 SPI 功能被激活。当使能 SPI,且为主机模式时该 引脚数据方向由 DDB2 控制。当该引脚被 SPI 强制为输入时,内部上拉电阻依然由 PORTB2 来控制。 OC1B,输出比较匹配输出。PB2引脚可作为定期器/计数器1比较匹配B外部输出口。 此时,PB2 引脚必要设立为输出 (DDB2=1) 。在 PWM 应用中,OC1B 引脚还作为 PWM 定期器模块输出引脚。PCINT2:引脚电平变化中断源 2。 PB2 可以作为外部中断源。 •OC1A/PCINT1 –端口 B,位 1 OC1A,输出比较匹配输出。PB1引脚可作为定期器/计数器1比较匹配A外部外部输出 口。此时, PB1 引脚必要设立为输出 (DDB1=1) 。在 PWM 应用中, OC1A 引脚还作为 PWM 定期器模块输出引脚。PCINT1:引脚电平变化中断源 1。 PB1 可以作为外部中断源。 •ICP1/CLKO/PCINT0 – 端口 B,位 0 ICP1,输入捕获引脚:PB0 引脚可以作为定期器 / 计数器 1 输入捕获功能引脚。 CLKO,分频之后系统时钟:分频之后系统时钟可以通过PB0引脚输出。如果CKOUT 熔丝位编程,无论 PORTB0 与 DDB0 为什么值,分频之后系统时钟都将从此引脚输出。 复位时时钟信号照样从此引脚输出。 PCINT0,引脚电平变化中断源 0 :PB0 可以作为外部中断源。 Table35 和Table36将端口 B第二功能与P63Figure 27 重载信号关联在了一起。 SPI MSTR INPUT 和SPI SLAVE OUTPUT 构成了MISO信号,而MOSI可以分解为SPI MSTR OUTPUT 和 SPI SLAVE INPUT。 端口C第二功•RESET/PCINT14 –端口 C,位 6 RESET,复位引脚:熔丝位RSTDISBL被编程时,该引脚作为普通I/O引脚使用,此时, 芯片内部上电复位与BOD复位电路将作为系统复位源。当RSTDISBL熔丝位被清零 时,内部复位电路将连接到该引脚,此时引脚不作为 I/O 使用。 如果 PC6 工作为复位引脚, DDC6、PORTC6与 PINC6 读返回值为 0。 PCINT14 :引脚电平变化中断源 14。 PC6 可作为外部中断源。 •SCL/ADC5/PCINT13 – 端口 C,位 5 SCL,两线串行总线时钟线:当 TWCR 寄存器中 TWEN 位被设为 "1”,使能 TWI 接口 时, PC5 引脚将与 I/O 端口脱离,成为 TWI 总线接口串行时钟线。在该模式下,有一 个尖峰滤波器连接到该引脚,可以抑制输入信号中不大于 50 ns 毛刺,同步引脚由具备上 升率限制开漏驱动器驱动。 PC5 也可作为 ADC 输入通道 5。注意, ADC 输入通道 5 由数字电源供电。 PCINT13:引脚电平变化中断源 13。 PC5 可作为外部中断源。 •SDA/ADC4/PCINT12 – 端口 C,位 4 SDA,两线串行总线数据线:当 TWCR寄存器中 TWEN位被设为1,使能TWI接口时, PC5引脚将与I/O端口脱离,成为TWI总线接口串行数据线。在该模式下,有一种尖峰滤 波器连接到该引脚,可以抑制输入信号中不大于 50 ns 毛刺,同步引脚将由具备上升率限 制开漏驱动器驱动。 PC4 也可作为 ADC 输入通道 4。注意, ADC 输入通道 4 由数字电源供电。 PCINT12:引脚电平变化中断源 12。 PC4 可作为外部中断源。 •ADC3/PCINT11 – 端口 C,位 3 PC3 也可作为 ADC 输入通道 3。注意, ADC 输入通道 3 由模仿电源供电。 PCINT11:引脚电平变化中断源 11。 PC3 可作为外部中断源。 •ADC2/PCINT10 – 端口 C,位 2 PC2 也可作为 ADC 输入通道 2。注意, ADC 输入通道 2 由模仿电源供电。 PCINT10:引脚电平变化中断源 10。 PC2 可作为外部中断源。 •ADC1/PCINT9 – 端口 C,位 1 PC1 也可作为 ADC 输入通道 1。注意, ADC 输入通道 1 由模仿电源供电。 PCINT9:引脚电平变化中断源 9。 PC1 可作为外部中断源。 •ADC0/PCINT8 – 端口 C,位 0 PC0 也可作为 ADC 输入通道 0。注意, ADC 输入通道 0 由模仿电源供电。 PCINT8:引脚电平变化中断源 8。 PC0 可作为外部中断源。 端口D第二功端口引脚第二功能 PD7 AIN1 ( 模仿比较器负输入) PCINT23 (引脚电平变化中断23) PD6 AIN0 ( 模仿比较器负输入) OC0A ( 定期器/计数器 0 输出比较匹配A输出 ) PCINT22 (引脚电平变化中断22) PD5 T1 (定期器 /计数器 1 外部计数器输入) OC0B ( 定期器/计数器 0 输出比较匹配B输出 ) PCINT21 (引脚电平变化中断21) PD4 XCK (USART外部时钟输入/输出 ) T0 (定期器 /计数器 0外部计数器输入 ) PCINT20 (引脚电平变化中断20) PD3 INT1 (外部中断 1 输入) OC2B ( 定期器/计数器 2 输出比较匹配B输出 ) PCINT19 (引脚电平变化中断19) •AIN1/OC2B/PCINT23 – 端口 D,位 7 AIN1,模仿比较器负输入:将 PD7 设立为输入,且关闭内部上拉电阻,以避免数字端口功 能影响模仿比较器性能。 PCINT23:引脚电平变化中断源 23。 PD7 可作为外部中断源。 •AIN0/OC0A/PCINT22 – 端口 D,位 6 AIN0,模仿比较器正输入:将 PD6 设立为输入,且关闭内部上拉电阻,以避免数字端口功 能影响模仿比较器性能。 OC0A,输出比较匹配输出:PD6引脚可作为定期器/计数器0比较匹配A外部输出口。此 时, PD6 引脚必要设立为输出 (DDD6=1) 。在 PWM 应用中, OC0A 引脚还作为 PWM 定期器模块输出引脚。 PCINT22:引脚电平变化中断源 22。 PD6 可作为外部中断源。 •T1/OC0B/PCINT21 – 端口 D,位 5 T1,定期器 / 计数器 1 计数器源。 OC0B,输出比较匹配输出:PD5引脚可作为定期器/计数器0比较匹配B外部输出口。此 时, PD5 引脚必要设立为输出 (DDD5=1) 。在 PWM 应用中, OC0B 引脚还作为 PWM 定期器模块输出引脚。 PCINT21:引脚电平变化中断源 21。 PD5 可作为外部中断源。 •XCK/T0/PCINT20 – 端口 D,位 4 XCK, USART 外部时钟。 T0,定期器 / 计数器 0 计数器源。 PCINT20:引脚电平变化中断源 20。 PD4 可作为外部中断源。 •INT1/OC2B/PCINT19 – 端口 D,位 3 INT1,外部中断源 1:PD3 引脚可作为外部中断源。 OC2B,输出比较匹配输出:PD3引脚可作为定期器/计数器0比较匹配B外部输出口。此 时, PD3 引脚必要设立为输出 (DDD3=1) 。在 PWM 应用中, OC2B 引脚还作为 PWM 定期器模块输出引脚。 PCINT19:引脚电平变化中断源 19。 PD3 可作为外部中断源。 •INT0/PCINT18 – 端口 D,位 2 INT0,外部中断源 0:PD2 引脚可作为外部中断源。 PCINT18:引脚电平变化中断源 18。 PD2 可作为外部中断源。 •TXD/PCINT17 – 端口 D,位 1 TXD,传播数据 (USART数据输出引脚 ):当 USART 传播器使能,无论 DDD1 为什么值, 该引脚被配备为输出口。 PCINT17:引脚电平变化中断源 17。 PD1 可作为外部中断源。 •RXD/PCINT16 – 端口 D,位 0 RXD,接受数据( USART数据输入引脚):当USART 接受器使能,无论DDD0为什么值, 该引脚被配备为输入口,此时引脚内部上拉功能依然由 PORTD0 位控制。 PCINT16:引脚电平变化中断源 16。 PD0 可作为外部中断源。 Table41 和 Table42 将端口 D 第二功能与 P63Figure 27 重载信号关联在了一起。 外部中断控制寄存器A—EICRA• 位 3,2 – ISC11,ISC10:中断触发方式控制 1 位 1 与位 0 外部中断 1 由引脚 INT1 激发,如果 SREG 寄存器 I 标志位和相应中断屏蔽位置位 话。触发方式如 Table43 所示。在检测边沿前 MCU 一方面采样 INT1 引脚上电平。如果 选取了边沿触发方式或电平变化触发方式,那么持续时间不不大于一种时钟周期脉冲将触 发中断,过短脉冲则不能保证触发中断。如果选取低电平触发方式,那么低电平必要保 持到当前指令执行完毕。外部中断屏蔽寄存器—EIMSK• 位 1 – INT1:外部中断祈求 1 使能 当 INT1 为 ”1”,并且状态寄存器 SREG I 标志置位,相应外部引脚中断就使能了。外 部中断控制寄存器– EICRA中断触发方式控制位(ISC11与ISC10)决定中断是由INT1 上升沿、下降沿,还是电平触发。使能之后,虽然引脚 INT1 被配备为输出,只要引脚 电平发生了相应变化,中断就会产生。相应中断向量为 INT1 中断向量。 • 位 0 – INT0:外部中断祈求 0 使能 当 INT0 为 ”1”,并且状态寄存器 SREG I 标志置位,相应外部引脚中断就使能了。外 部中断控制寄存器– EICRA中断触发方式控制位(ISC11与ISC10)决定中断是由INT0 上升沿、下降沿,还是电平触发。使能之后,虽然引脚 INT0 被配备为输出,只要引脚 电平发生了相应变化,中断就会产生。相应中断向量为 INT0 中断向量。 外部中断标志寄存器—EIFR• 位 1 – INTF1:外部中断标志 1 INT1引脚电平发生跳变时触发中断祈求,并置位相应中断标志INTF1。如果SREG位 I以及EIMSK寄存器相应中断使能位INT1为”1”,MCU即跳转到相应中断向量。进入 中断服务程序之后该标志自动清零。此外,标志位也可以通过写入 ”1” 来清零。若 INT1 配备为电平触发,则 INTF1始终为零。 • 位 0 – INTF0:外部中断标志 0 INT0引脚电平发生跳变时触发中断祈求,并置位相应中断标志INTF0。如果SREG位 I以及EIMSK寄存器相应中断使能位INT0为”1”,MCU即跳转到相应中断向量。进入 中断服务程序之后该标志自动清零。此外,标志位也可以通过写入 ”1” 来清零。若 INT0 配备为电平触发,则 INTF0始终为零。 引脚电平变化中断控制寄存器— PCICR• 位 2 - PCIE2:引脚电平变化中断使能 2 当 PCIE2 位与 SREG 位 I 置 "1”。 使能 PCINT23..16 引脚上任何电平变化都会引 起中断。相应引脚电平变化中断祈求由 PCI2中断向量执行。 PCINT23..16 引脚可以通 过 PCMSK2 寄存器单独使能。 • 位 1 - PCIE1:引脚电平变化中断使能 1 当 PCIE1 位与 SREG 位 I 置 "1”。 使能 PCINT14..8 引脚上任何电平变化都会引起 中断。相应引脚电平变化中断祈求由 PCI1 中断向量执行。 PCINT14..8 引脚可以通过 PCMSK1 寄存器单独使能。 • 位 0 - PCIE0:引脚电平变化中断使能 0 当 PCIE0 位与 SREG 位 I 置 "1”。 使能 PCINT7..0 引脚上任何电平变化都会引起 中断。相应引脚电平变化中断祈求由 PCI0 中断向量执行。 PCINT7..0 引脚可以通过 PCMSK0 寄存器单独使能。 引脚电平变化中断标志寄存器— PCIFR• 位 2 - PCIF2:引脚电平变化中断标志 2 当引脚 PCINT23..16 上电平变化触发中断祈求时, PCIF2 置 "1”。如果 SREG 寄存器中 I 位 I 与 PCICR 寄存器中位 PCIE2 置 "1”,MCU 将会跳转到相应中断向量。当中 断程序执行时,该标志被清除。该位也可通过写逻辑 "1” 来 清除。 • 位 1 - PCIF1:引脚电平变化中断标志 1 当引脚 PCINT14..8 上电平变化触发中断祈求时,PCIF1 置 "1”。如果 SREG 寄存器中 I位I与PCICR寄存器中位PCIE1置"1”,MCU将会跳转到相应中断向量。当中断程序 执行时,该标志被清除。该位也可通过写逻辑 "1” 来 清除。 • 位 0 - PCIF0:引脚电平变化中断标志 0 当引脚 PCINT7..0 上电平变化触发中断祈求时,PCIF0置 "1”。如果 SREG 寄存器中 I 位 I 与 PCICR 寄存器中位 PCIE0 置 "1”,MCU 将会跳转到相应中断向量。当中断程 序执行时,该标志被清除。该位也可通过写逻辑 "1” 来 清除。 引脚电平变化屏蔽寄存器2— PCMSK2• 位 7..0 – PCINT23..16:引脚电平变化使能屏蔽 23..16 引脚电平变化屏蔽寄存器1—PCMSK1 • 位 6..0 – PCINT14..8:引脚电平变化使能屏蔽14..8 PCINT14..8中每一位决定相应I/O引脚电平变化中断与否使能。如果PCINT14..8与 PCICR上 PCIE1 位置位,则相应引脚电平变化中断使能。如果 PCINT14..8清零,相 应引脚电平变化中断禁用。 引脚变化屏蔽寄存器0— PCMSK0• 位 7..0 – PCINT7..0:引脚电平变化使能屏蔽 7..0 信号阐明 ( 内部信号 ): count 使 TCNT0 加 1 或减 1 direction 选取加操作或减操作 clear 清除 TCNT0 ( 将所有位清零 ) clkTn T/C 时钟, clkT0 top 表达 TCNT0 已经达到了最大值 bottom 表达 TCNT0 已经达到了最小值 (0) • 位 1:0 – WGM01:0:波形产生模式 T/C控制寄存器B—TCCR0B• 位 7 – FOC0A:强制输出比较 A FOC0A 仅在 WGM 指明非 PWM 模式时才有效。读 FOC0A返回值永远为 0。 • 位 6 – FOC0B:强制输出比较 B FOC0B 仅在 WGM 指明非 PWM 模式时才有效。读 FOC0B返回值永远为 0。 • 位 3 – WGM02:波形产生模式 请参见 P89”T/C 控制寄存器 A – TCCR0A” 。 • 位 2:0 – CS02:0:时钟选取T/C寄存器—TCNT0通过 T/C 寄存器可以直接对计数器 8 位数据进行读写访问。对 TCNT0 寄存器写访问 将在下一种时钟制止比较匹配。在计数器运营过程中修改 TCNT0 数值有也许丢失一 次 TCNT0 和 OCR0x 比较匹配。 输出比较寄存器A—OCR0A输出比较寄存器B—OCR0BT/C中断屏蔽寄存器—TIMSK0• 位 2 – OCIE0B:T/C 输出比较匹配 B 中断使能 当 OCIE0B 和状态寄存器全局中断使能位 I 都为 ”1” 时,T/C 输出比较匹配 B中断使 能。当 T/C 比较匹配发生,即 TIFR0中 OCF0B 置位时,中断服务程序得以执行。 • 位 1 – OCIE0A:T/C0 输出比较匹配A 中断使能 当 OCIE0A 和状态寄存器全局中断使能位 I 都为 ”1” 时, T/C0 输出比较匹配 A 中断 使能。当T/C0比较匹配发生,即TIFR0中OCF0A置位时,中断服务程序得以执行。 • 位 0 – TOIE0:T/C0 溢出中断使能 当 TOIE0 和状态寄存器全局中断使能位 I 都为 ”1” 时,T/C0 溢出中断使能。当 T/C0 发生溢出,即 TIFR0 中 TOV0 位置位时,中断服务程序得以执行。 T/C 0中断标志寄存器—TIFR0• 位 2 – OCF0B:T/C0输出比较 B 匹配标志 当 T/C 与 OCR0B( 输出比较寄存器 0B) 值匹配时, OCF0B 置位。此位在中断服务程 序里硬件清零,也可以对其写 1 来清零。当 SREG 中位 I、OCIE0B(T/C比较 B匹配中 断使能)和 OCF0B 都置位时,中断服务程序得到执行。 • 位 1 – OCF0A:T/C0输出比较 A 匹配标志 当 T/C0与 OCR0A( 输出比较寄存器 0A) 值匹配时,OCF0A 置位。此位在中断服务程 序里硬件清零,也可以对其写 1 来清零。当 SREG 中位 I、OCIE0A(T/C0 比较匹配中 断使能)和 OCF0A 都置位时,中断服务程序得到执行。 • 位 0 – TOV0:T/C0 溢出标志 T/C0 溢出时 TOV0 置位。执行相应中断服务程序时此位硬件清零。此外,TOV0也可以 通过写 1 来清零。当 SREG 中位 I、TOIE0(T/C0 溢出中断使能)和 TOV0 都置位时, 中断服务程序得到执行。 该标志位设立取决于 WGM02:0 位设定。请参见 Table52, P90” 波形产生模式位 定义 ” 。 通用T/C控制寄存器—GTCCR• 位 7 – TSM:T/C 同步模式 TSM置位激活T/C同步模式。只要TSM置位,PSR2 与PSR10数值将保持不变,使得相 关定期器/计数器预分频器处在持续复位状态。这样有关 T/C 将停止工作。顾客可以 为它们赋予相似数值而不会出当前配备一种定期器/计数器时另一种 T/C 在运营现 象。一旦TSM清零,PSR2 与PSR10位被硬件清零,有关定期器/计数器同步开始计数。• 位 0 – PSRSYNC:预分频器复位 PSRSYNC置位时T/C1与T/C0预分频器复位。操作完毕后这一位普通由硬件及时清零, 除非TSM置位。要注意是T/C1与T/C0共用一种预分频器,复位对两个计时器均有影响。 unsigned int i; ... /* 设立TCNT1 为0x01FF */ TCNT1 = 0x1FF; /* 将 TCNT1读入i */ i = TCNT1; ...下面例程给出了 TCNT1 寄存器基本读操作。对 OCR1A/B 或 ICR1 读操作可以使 用相似办法。 unsigned int TIM16_ReadTCNT1( void ) { unsigned char sreg; unsigned int i; /* 保存全局中断标志 */ sreg = SREG; /* 禁用中断 */ _CLI(); /* 将 TCNT1读入i */ i = TCNT1; /* 恢复全局中断标志 */ SREG = sreg; return i; 信号描述(内部信号): Count TCNT1 加 1 或减 1 Direction 拟定是加操作还是减操作 Clear TCNT1 清零 clkT1 定期器/计数器时钟信号 TOP 表达 TCNT1 计数器到达最大值 BOTTOM 表达 TCNT1 计数器到达最小值(0) 16位定期器/计数器寄存 器阐明 T/C1控制寄存器B—TCCR1B• 位 7 – ICNC1:输入捕获噪声抑制器 • 置位ICNC1将使能输入捕获噪声抑制功能。此时外部引脚ICP1输入被滤波。其作用 是从 ICP1 引脚持续进行 4 次采样。如果 4 个采样值都相等,那么信号送入边沿检测 器。因而使能该功能使得输入捕获被延迟了 4 个时钟周期。 • 位 6 – ICES1:输入捕获触发沿选取 该位选取使用 ICP1 上哪个边沿触发捕获事件。 ICES 为 "0” 选取是下降沿触发输入 捕获; ICES1 为 "1” 选取是逻辑电平上升沿触发输入捕获。 按照 ICES1 设立捕获到一种事件后,计数器数值被复制到 ICR1 寄存器。捕获事件还 会置为 ICF1。如果此时中断使能,输入捕获事件即被触发。 当ICR1用作TOP值(见TCCR1A与TCCR1B寄存器中WGM13:0位描述)时,ICP1 与输入捕获功能脱开,从而输入捕获功能被禁用。T/C1控制寄存器C—TCCR1CT/C1—TCNT1H与TCNT1L输出比较寄存器1A—OCR1AH 与OCR1AL输出比较寄存器1B—OCR1BH 与OCR1BL输入捕获寄存器1—ICR1H 与 ICR1LT/C1中断屏蔽寄存器—TIMSK1• 位 5 – ICIE1:T/C1输入捕获中断使能 当该位被设为 "1”,且状态寄存器中 I 位被设为 "1” 时, T/C1 输入捕获中断使能。 T 一旦IFR1ICF1置位,CPU即开始执行T/C1输入捕获中断服务程序(见P48 “中断” )。• 位 2 – OCIE1B:T/C1 输出比较 B 匹配中断使能 当该位被设为 "1”,且状态寄存器中 I 位被设为 "1” 时,使能 T/C1 输出比较 B匹配中 断使能。一旦 TIFR1 上 OCF1B 置位, CPU 即开始执行 T/C1 输出比较 B 匹配中断服 务程序(见 P48 “ 中断 ” )。 • 位 1 – OCIE1A:T/C1输出比较 A 匹配中断使能 当该位被设为 "1”,且状态寄存器中 I 位被设为"1” 时,T/C1 输出比较 A 匹配中断使 能。一旦 TIFR1 上 OCF1A 置位, CPU 即开始执行 T/C1 输出比较 A 匹配中断服务程 序(见 P48 “ 中断 ” )。 • 位 0 – TOIE1:T/C1 溢出中断使能 当 TOIE1 与状态寄存器 I 位同步被设为 ”1” 时,T/C1溢出中断使能。一旦 TIFR1 TOV1置位, CPU即开始执行 T/C1 溢出中断服务程序(见P44“ 看门狗定期器 ” )。 T/C1中断标志寄存器—TIFR1 • 位 5 – ICF1:T/C1 输入捕获标志位 外部引脚 ICP1 浮现捕获事件时 ICF1置位。此外,当 ICR1 作为计数器 TOP值时,一 旦计数器值达到 TOP, ICF1 也置位。 执行输入捕获中断服务程序时ICF1自动清零。也可以对其写入逻辑"1”来清除该标志位。 • 位 2 – OCF1B:T/C1 输出比较 B 匹配标志位 当 TCNT1 与 OCR1B 匹配成功时,该位被设为 "1”。 强制输出比较 (FOC1B) 不会置位 OCF1B。 执行强制输出比较匹配 B 中断服务程序时 OCF1B 自动清零。也可以对其写入逻辑 "1” 来 清除该标志位。 • 位 1 – OCF1A:T/C1输出比较 A 匹配标志位 当 TCNT1 与 OCR1A 匹配成功时,该位被设为 "1”。 强制输出比较 (FOC1A) 不会置位 OCF1A。 执行强制输出比较匹配 A 中断服务程序时 OCF1A 自动清零。也可以对其写入逻辑 "1” 来 清除该标志位。 • 位 0 – TOV1:T/C1 溢出标志 该位设立与T/C1工作方式关于。工作于普通模式和CTC模式时,T/C1溢出时TOV1 置位。对工作在其他模式下 TOV1 标志位置位,见 P118Table58 。 执行溢出中断服务程序时 OCF1A 自动清零。也可以对其写入逻辑 "1” 来清除该标志位。 通用T/C控制寄存器—GTCCR • 位 1 – PSR2:T/C2 预分频器复位 此位写 "1“ 时复位 T/C2预分频器。操作完毕后普通及时由硬件清零。如果 T/C2 工作于 异步模式,则这一位
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服