复习旧课: ATmega16 有 3 个外部中断源,分别对应 PD2、PD3 和 PB2。与外部中断有关的寄存器:状态寄存器(SREG);通用中断控制寄存器(GICR);通用中断标志寄存器(GIFR);MCU 控制寄存器(MCUCR)。 CVAVR 编译器的中断操作:CVAVR 的 C 编译器支持在 C 源程序中直接开发中断程序。当用户使用该功能时,必须在中断服务子程序定义之前用“interrupt” 语句通知编译器,该子程序是一个中断操作。 用“interrupt” 语句定义中断服务子程序的格式为: interrupt [ 中断向量号或向量号的宏定义] void handler(中断函数名) (void) 新课讲解: 第六章 定时器/计数器原理及应用 § 6.1 定时与计数原理 6.1.1 计数原理 所谓计数是指对外部事件进行计数。外部事件的发生以输入有效脉冲来表示。因此计数功能的实质,就是对外部有效脉冲进行计数。 当外部发来一个有效脉冲时,在 S1 闭合的情况下,计数器会加 1,即表示记录了一次外部事件。当外部脉冲为连续脉冲时,计数器将不断加 1,直到计数器溢出。计数器原理框图如下图所示: 图6-1 计数器原理框图 6.1.2 定时原理 定时器原理框图如图6-2 所示。 定时功能实质上是通过计数器的计数来实现的。当计数器的输入脉冲频率恒定时,计数器所记录的数值即代表了时间的概念。例如:若计数频率恒定为 1MHZ,即其周期为 1,此时表明每微秒计数器加 1。当计数器的值从1 增加到10 时,计数器所记录的时间为 10,即定时为 10 微秒。所以当计数器的计数频率恒定时,可以根据计数器的“计数值”计算出定时时间。由此原理,也可以反过来按定时时间要求计算出计数器的装入初值。 图6-2 定时器原理框图 6.1.3 事件捕获原理 捕获原理框图如下图所示: 当外部捕获事件发生时,立即打开闸门电路将定时器/计数器的当前值装入捕获寄存器。一旦定时器/计数器的当前值被装入捕获寄存器,捕获标志位 ICF 立即置 1 并同时产生输入捕获中断请求2。 图6-3 外部捕获原理框图 6.1.4 PWM 输出原理与方法 PWM 为脉冲宽度调制。PWM 输出的一般形式为一系列的脉冲波形,如图6-4 所示。 图6-4 PWM 输出的一般形式 在图6-4 中,设脉冲的周期为τ,高电平持续时间为t,则t 与τ之比定义为PWM 的“占空比”,用D 表示,即D=t/τ。 PWM 输出的最大特点是波形的频率恒定,波形的占空比D 却可以改变。占空比的改变很具有实际意义,例如小功率直流电机的驱动与调速,...