复习旧课: ATmega16 有 3 个外部中断源,分别对应 PD2、PD3 和 PB2
与外部中断有关的寄存器:状态寄存器(SREG);通用中断控制寄存器(GICR);通用中断标志寄存器(GIFR);MCU 控制寄存器(MCUCR)
CVAVR 编译器的中断操作:CVAVR 的 C 编译器支持在 C 源程序中直接开发中断程序
当用户使用该功能时,必须在中断服务子程序定义之前用“interrupt” 语句通知编译器,该子程序是一个中断操作
用“interrupt” 语句定义中断服务子程序的格式为: interrupt [ 中断向量号或向量号的宏定义] void handler(中断函数名) (void) 新课讲解: 第六章 定时器/计数器原理及应用 § 6
1 定时与计数原理 6
1 计数原理 所谓计数是指对外部事件进行计数
外部事件的发生以输入有效脉冲来表示
因此计数功能的实质,就是对外部有效脉冲进行计数
当外部发来一个有效脉冲时,在 S1 闭合的情况下,计数器会加 1,即表示记录了一次外部事件
当外部脉冲为连续脉冲时,计数器将不断加 1,直到计数器溢出
计数器原理框图如下图所示: 图6-1 计数器原理框图 6
2 定时原理 定时器原理框图如图6-2 所示
定时功能实质上是通过计数器的计数来实现的
当计数器的输入脉冲频率恒定时,计数器所记录的数值即代表了时间的概念
例如:若计数频率恒定为 1MHZ,即其周期为 1,此时表明每微秒计数器加 1
当计数器的值从1 增加到10 时,计数器所记录的时间为 10,即定时为 10 微秒
所以当计数器的计数频率恒定时,可以根据计数器的“计数值”计算出定时时间
由此原理,也可以反过来按定时时间要求计算出计数器的装入初值
图6-2 定时器原理框图 6
3 事件捕获原理 捕获原理框图如下图所示: 当外部捕获事件发生时,立