闲话:本文的内容介绍了关于定时器0 的中断允许控制寄存器的内容,内容其实也并不多。这些内容转化代码后,代码量也很少,但是这些知识又是不得不去了解的。以前学 CCNA 的时候,看书就体会很深,书上讲某个知识点的时候,理论特别长,然后我觉得这配置起来得多麻烦,结果几条命令就配置完了。还有很多知识也是这样,它有复杂的理论在背后做支撑,又有简单易用用户接口(命令行或 API)。所以,有些枯燥的理论该看还是要看啊!!!
上篇文章介绍了中断的概念,本篇文章继续整理关于定时器中断相关的寄存器。上篇文章中已经知道,这些寄存器需要进行配置,配置完以后才能完成相应的中断。
在编程之前需要了解中断结构,还需要了解需要配置哪些寄存器才可以使用中断。我们先来看一下中断结构,如下图,手册 P156:
在上图中可以看出,有 8 个中断源,定时器 0 在上图左侧靠上的位置。定时器 0 在图中被称为 Timer0/TF0,当需要 Timer0/FT0 进行中断请求的时候,需要配置 “中断允许控制寄存器”,然后要通过 “中断优先级控制寄存器”,最后到达 CPU 来选择对应的中断源来处理不同的中断请求。在上图中,Timer0/TF0 向右侧的 ET0 是断开的,接着还有一个 EA 也是断开的。对于 EA 来说,它对所有的中断都起到 “允许控制” 的作用。所以,我们想使用 Timer0/FT0 的话,需要配置 ET0 和 EA 对应的寄存器。
在上图中看到,“中断允许控制寄存器” 下方箭头指着 “IE、XICON 寄存器”。它明确的说明 IE 和 XICON 是中断允许寄存器。我们查看手册的 P158,如下图:
上图是 IE 寄存器,该寄存器就包含了 EA 和 ET0 寄存器。在图中的表格上面有一句话,“IE:中断允许寄存器(可位寻址)”,也就是说该寄存器仍然想前面的寄存器可以按位进行操作。我们提到的 ET0 和 EA 寄存器都包含在 IE 寄存器中。EA 寄存器是 CPU 的总中断允许控制位,回顾第一个图,EA 贯穿整个中断允许寄存器。EA 在 IE 寄存器的第 7 位。ET0 是 T0 的溢出中断允许位,在 IE 寄存器的第 1 位。
前面说了那么多,这里总结一下。CPU 响应定时器 0 中断的前提是需要配置 IE 寄存器的 EA 和 ET0,也就是第 7 位和第 1 位。
我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!