定时器
在ATmega128单片机中,有四个定时器/计数器,具体如下:
- 定时器0(Timer/Counter 0):这是一个8位定时器/计数器。
- 定时器1(Timer/Counter 1):这是一个16位定时器/计数器,具有多种工作模式,包括普通模式、CTC(Clear Timer on Compare)模式、快速PWM模式和相位修正PWM模式。
- 定时器2(Timer/Counter 2):这也是一个8位定时器/计数器,可以外接32768Hz的晶振,实现RTC(实时时钟)。
- 定时器3(Timer/Counter 3):这是另一个16位定时器/计数器,具有预分频器、比较功能和捕捉功能,可以实现精确的程序定时、波形产生和信号测量。
这些定时器/计数器提供了灵活的定时和计数功能,可以用于各种应用,如PWM信号生成、输入捕获、输出比较和实时时钟等。
在ATmega128单片机中,TIMSK
寄存器(Timer Interrupt Mask Register)用于控制定时器的中断使能。TIMSK=0x0C;//0000 1100
具体来说,TIMSK
寄存器的各位定义如下:
- TOIE0(第0位):定时器0溢出中断使能。
- OCIE0(第1位):定时器0比较匹配中断使能。
- TOIE1(第2位):定时器1溢出中断使能。
- OCIE1B(第3位):定时器1比较匹配B中断使能。
- OCIE1A(第4位):定时器1比较匹配A中断使能。
- TICIE1(第5位):定时器1输入捕获中断使能。
- TOIE2(第6位):定时器2溢出中断使能。
- OCIE2(第7位):定时器2比较匹配中断使能。
在ATmega128单片机中,ETIMSK
(Extended Timer Interrupt Mask Register)寄存器用于控制定时器3和定时器4的中断使能。以下是ETIMSK
寄存器的位定义:
- OCIE1C:定时器1比较匹配C中断使能位。当该位被设置为1时,使能定时器1的比较匹配C中断。
- OCIE3C:定时器3比较匹配C中断使能位。当该位被设置为1时,使能定时器3的比较匹配C中断。
- TOIE3:定时器3溢出中断使能位。当该位被设置为1时,使能定时器3的溢出中断。
- OCIE3B:定时器3比较匹配B中断使能位。当该位被设置为1时,使能定时器3的比较匹配B中断。
- OCIE3A:定时器3比较匹配A中断使能位。当该位被设置为1时,使能定时器3的比较匹配A中断。
- TICIE3(第5位):定时器3输入捕获中断使能。
外部中断
在ATmega128单片机中,EIMSK
(External Interrupt Mask Register)寄存器用于使能或禁用外部中断。以下是EIMSK
寄存器的位定义:
- INT0:位0,使能或禁用外部中断0(INT0)。设置为1使能INT0中断,设置为0禁用INT0中断。
- INT1:位1,使能或禁用外部中断1(INT1)。设置为1使能INT1中断,设置为0禁用INT1中断。
- INT2:位2,使能或禁用外部中断2(INT2)。设置为1使能INT2中断,设置为0禁用INT2中断。
- INT3:位3,使能或禁用外部中断3(INT3)。设置为1使能INT3中断,设置为0禁用INT3中断。
- INT4:位4,使能或禁用外部中断4(INT4)。设置为1使能INT4中断,设置为0禁用INT4中断。
- INT5:位5,使能或禁用外部中断5(INT5)。设置为1使能INT5中断,设置为0禁用INT5中断。
- INT6:位6,使能或禁用外部中断6(INT6)。设置为1使能INT6中断,设置为0禁用INT6中断。
- INT7:位7,使能或禁用外部中断7(INT7)。设置为1使能INT7中断,设置为0禁用INT7中断。
通过设置EIMSK
寄存器中的相应位,可以控制ATmega128单片机上对应的外部中断引脚是否响应外部信号变化。当EIMSK
中的某一位被设置为1,并且全局中断使能位(SREG中的I位)也被设置为1时,对应的外部中断将被使能。
- 外部中断0(INT0):对应引脚是PD2。
- 外部中断1(INT1):对应引脚是PD3。
- 外部中断2(INT2):对应引脚是PB2。
- 外部中断3(INT3):对应引脚是PD4。
- 外部中断4(INT4):对应引脚是PE4。
- 外部中断5(INT5):对应引脚是PE5。
- 外部中断6(INT6):对应引脚是PE6。
- 外部中断7(INT7):对应引脚是PE7。