- 硬件和软件相关的中断源
- 软件错误相关的硬件中断
- 实时时钟
- 为调试程序而设置的中断源
(3) 中断系统的功能
为了实现各种中断请求,中断系统应具有以下功能:
- 实现中断及返回
- 能够实现优先级排队
- 高级中断源能够中断低级的中断处理
4.2 定时器/计数器
- 所有的嵌入式处理器都集成了定时器/计数器模块。
- 系统中至少有一个定时器,用作系统时钟。
- 定时器和计数器都是由带有保存当前值的寄存器和向当前寄存器值加1(或减1)的一个增量输入的加法器逻辑电路组成。或者说是一种能够累计输入脉冲的个数的数字电路。它由触发器构成,具有记忆功能,除了能够完成计数外,还能够用作分频和定时。
下降沿动作的异步二进制加法计数器:
三位加法计数器时序图:
定时器、计数器的区别:
- 定时器的计数装置是连到已知的周期性时钟信号上的,用来测量时间间隔;
- 计数器的计数装置是连到非周期性信号上的,用来计外部事件的发生次数。
因为同样的逻辑电路可以有这两种使用方式,所以该设备经常被称为“定时器/计数器”。
嵌入式处理器上的定时器/计数器具有的作用: - 嵌入式操作系统的任务调度,特别是具有时间片轮转调度功能的操作系统必须使用定时器产生时间片。
- 嵌入式操作系统的软件时钟需要基于硬件定时器产生定时信号。
- 通信电路的波特率发生器。
- 实时时钟电路。
- 集成的片上A/D转换和D/A转换电路。
……
定时器的扩展——脉宽调制(PWM)器:
通过在定时器电路中增加比较器等额外电路,容易构成脉宽调制(PWM)器,用于输出一个频率和占空比可调的矩形波。典型地用于电机调速、LED亮度调节、简易数/模转换等等。
定时器/计数器的扩展——捕获(Capture):
通过在定时器/计数器电路中增加锁存器等额外电路,容易实现捕获功能。此时向定时器提供已知频率的时钟,用户通过设置捕获的(硬件)触发条件,可在触发条件发生时刻将当前计数值锁存到捕获寄存器中。
捕获机制典型地用于硬件事件发生时刻的精确定时。可以避免“事件发生时刻→软件获取到计数值”这段时间的计时不准确性。
5 硬件设计
整体硬件仿真图:
基本思路:
- 定义一个计数器变量,用于记录秒表当前的计时时间,初始值为0。
- 定义一个标志变量,用于记录秒表的状态,包括“运行中”、“暂停中”和“停止”三种状态。
- 定义一个定时器,设置定时器的周期为0.1秒,用于产生中断。在中断服务程序中,更新计数器变量的值,并将计数器的值转换为时分秒的格式,然后将时间显示在LCD上。注意,在中断服